IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

setContentView sans xml ?


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut setContentView sans xml ?
    Bonsoir tout le monde, j'ai un petit problème avec mon application Android,

    voila j'ai une classe Main qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void onCreate(Bundle savedInstanceState) 
    	{
    		super.onCreate(savedInstanceState);		
    		Bundle b = getIntent().getExtras();
    		boolean mode = b.getBoolean("mode");
    		boolean eclosion = b.getBoolean("eclosion");
    		int difficulte = b.getInt("difficulte");
     
    		setContentView(new Plateau(this,mode,eclosion,difficulte));
    	}
    et qui charge une vue personnalisée, qui dessine un Plateau (extends View) qui va très bien.

    Cependant, j'ai un Thread IA dans Plateau et selon la difficulté, celui-ci peut-être plus long et j'aurai aimé rajouter une progressBar circulaire dans celui-ci,

    j'ai donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public class Swingworker extends AsyncTask<Void, Void, Void> {
     
    		protected void onPreExecute(){
    			bar = (ProgressBar)findViewById(R.id.progressBar1);
    	        bar.setVisibility(View.VISIBLE);
    	    }
     
    		@Override
    		protected Void doInBackground(Void... arg0) {
    			try {
    				// changer d'IA
    				conf = IA.meilleurConf(conf, (byte) difficulte);
     
    			} catch (CaseNonLibreException e) {
    				e.printStackTrace();
    			}
    			affPossibleMove();
    			postInvalidate();
    			threadD = false;
    			return null;
    		}
     
    		protected void onPostExecute(Void unused) {
    			bar.setVisibility(View.GONE);
    			verifWin();
    		}
     
    	}
    Mais, bien sur, j'ai un nullPointerException, car mon progressBar n'est associé à aucune vue !

    Mais comme je n'ai pas de layout.xml, comment je m'y prends ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Dans ton cas, tu dois simplement créer ta barre avec son constructeur : new ProgressBar(Context context)
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Hello, merci pour ta réponse

    ça marche super bien pour un ProgressDialog, mais pas pour une ProgressBar, ai-je oublié un paramètre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bar = new ProgressBar(context, null, android.R.attr.progressBarStyleSmall);
    			bar.setVisibility(View.VISIBLE);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bar.setVisibility(View.GONE);
    La bar ne s'affiche pas.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonsoir, quelqu'un a une petite idée ?

  5. #5
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Déjà pourquoi tu mets bar.setVisibility(View.GONE); si tu veux afficher ta barre ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour

    le GONE est mis dans le onPostExecute(), c'est pas bon ?

  7. #7
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Max25190 Voir le message
    Bonjour

    le GONE est mis dans le onPostExecute(), c'est pas bon ?
    Ah si, à cet endroit ok. Mais c'est plutot dismiss() qu'il faudrait invoquer.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Le dismiss() n'existe pas pour une ProgressBar

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Comment se fait-il que un progressDialog marche et pas un progressBar ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    progressDialog bar = new progressDialog(context);
    bar.show();
    ....
    bar.hide();
    et pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    progressBar bar = new ProgressBar(context);
    bar.setVisivility(View.VISIBLE);
    ....
    bar.setVisivility(View.GONE);

  10. #10
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    ProgressDialog etend de AlertDialog (qui lui même étend de Dialog).
    ProgressBar etend de View.

    Ce sont des objets qui non aucun rapport entre eux.
    C'est tout à fait normal que cela ne fonctionne pas pour les 2 car elle hérite pas des même méthodes.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Oui oui sa je comprends bien, il faut que je fasse quoi alors ?

    comment sa se fait qu'elle ne s'affiche pas et que je n'ai aucune erreur ?

    Il faut l'ajouter à la vue ?

  12. #12
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Tu crée une progessBar que tu ajoute nulle part, donc elle risque pas de s'afficher.
    Il faut que tu l'ajoutes soit a ton contenaire, soit a un Dialog custom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.addView(monProgressBar);
    ou
    Custom dialog
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

Discussions similaires

  1. [Framework] Spring 3.1 : configuration sans XML
    Par miles_ dans le forum Spring
    Réponses: 0
    Dernier message: 13/03/2012, 10h25
  2. Redirections de pages sans XML
    Par algelos dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 30/06/2011, 10h30
  3. Onglet sans Xml
    Par Ntotor dans le forum Android
    Réponses: 1
    Dernier message: 17/05/2011, 17h37
  4. Récupérer variable(prix de vente) d'un site partenaire sans XML?
    Par Funkystyle62 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 01/12/2009, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo