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 :

Démarrer un nouveau activity


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut Démarrer un nouveau activity
    Bonjour,
    J'ai eu un problème lors du démarrage d'un "activity".
    Sur l'activity A, quand on clique sur le bouton, je veux démarrer un autre activity.
    Voici le code:
    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
    29
    30
    31
    32
    33
    34
    35
    ((Button)findViewById(R.id.mdp_ok)).setOnClickListener(
    	    		  new OnClickListener(){
    	    			  public void onClick(View v) {
    	    				  EditText mdp_text = ((EditText)findViewById(R.id.mdp_ET));
    	    				  String mdp_str = mdp_text.getText().toString();
    	    				  /*
    	    				  Intent returnIntent = new Intent();
    	    				  returnIntent.putExtra("return", "ok");
    	    			      setResult(RESULT_OK,returnIntent);     */
    	    				  Intent load_cards = new Intent(Connexion.this, Load_cards.class);
    	    				  ((Button)findViewById(R.id.mdp_ok)).setOnClickListener(
    	    		  new OnClickListener(){
    	    			  public void onClick(View v) {
    	    				  EditText mdp_text = ((EditText)findViewById(R.id.mdp_ET));
    	    				  String mdp_str = mdp_text.getText().toString();
    	    				  /*
    	    				  Intent returnIntent = new Intent();
    	    				  returnIntent.putExtra("return", "ok");
    	    			      setResult(RESULT_OK,returnIntent);     */
    	    				  Intent load_cards = new Intent(Connexion.this, Load_cards.class);
    	    				  load_cards.putExtra("card_name",card_name);
    	    				  load_cards.putExtra("id", (String) getIntent().getExtras().get("id"));
    	    				  load_cards.putExtra("claim", (String) getIntent().getExtras().get("claim"));
    	    				  finish();
    	    				  startActivity(load_cards);
     
     
    	    			  }
    	      });
    	    				  finish();
    	    				  startActivity(load_cards);
     
     
    	    			  }
    	      });
    Le problème est que le 2ème activity d'affiche pas tout de suite (Il s'éxcute en derrière plan). L'affichage du premier activity reste longtemp sur l'écran.

    Quel qu'un a une idée?

    Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut
    Tu veux simplement lancer une Activity sur le clic sur un bouton ? pourquoi faire si compliqué alors ? dans le code que tu met là, tu as un bouton qui crée un EditText qui n'est utilisé nulle part... ensuite tu remet une gestion d'evenement sur le meme bouton... a mon avis tu t'es embrouillé dans ton code parce que là... c'est pas clair du tout.

    Essaie un truc simple du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ((Button)findViewById(R.id.mdp_ok)).setOnClickListener(new OnClickListener(){
    	public void onClick(View v) {
    		Intent load_cards = new Intent(Connexion.this, Load_cards.class);
    		load_cards.putExtra("card_name",card_name);
    		load_cards.putExtra("id", (String) getIntent().getExtras().get("id"));
    		load_cards.putExtra("claim", (String) getIntent().getExtras().get("claim"));
    		startActivity(load_cards);
    	}
    });
    si tu cherches effectivement à seulement lancer une activity sur le clic du bouton mdp_ok, alors ca devrait suffir !

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut
    c'est pour demander l'utilisateur taper MDP au fait. Le EditText ne gène pas.
    c'est surtout parce que le "load_card" activity est lourd (il fait des requettes avec le serveur) et il a mis du temps à engager le premier activity. mais je ne sais pas comment forcer à fermer la fenêtre du premier activity .

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut
    a la limite, tu peux mettre en place un ecran de chargement lorsque tu lance ton second activity (avec un progress dialog par exemple) et ne l'enlever que lorsqu'il est fini... apres, pour fermer le premier activity... je n e suis pas sur que finish() fonctionne...

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut
    tu m'as inspiré
    J'ai chargé le xml du 2eme activity avant de finish() le 1er activity et c'est bon
    merci !

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 91
    Par défaut
    au fait non

    même si je crée un nouveau activity, le premier activity ne disparait pas tout de suite ...

    et ma façon il y a désaccord de theme ...

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par lansher1985 Voir le message
    c'est pour demander l'utilisateur taper MDP au fait.
    c'est surtout parce que le "load_card" activity est lourd (il fait des requettes avec le serveur) et il a mis du temps à engager le premier activity.
    il faut donc un service ou une AsyncTask ou un thread. Si tu bloque trop le thread principale, tu va te prendre un ARN

    Sinon, vue ce que tu dis, je pense qu'il te faut plutôt utiliser un startActivityForResult

Discussions similaires

  1. Démarrer un nouveau projet avec Abc-Wtools
    Par william44290 dans le forum Abc-Wtools
    Réponses: 1
    Dernier message: 16/02/2011, 11h49
  2. Suite plantage, impossible de démarrer avec INNODB activé
    Par apophyss dans le forum Administration
    Réponses: 3
    Dernier message: 03/10/2010, 09h30
  3. Démarrer un nouveau sujet ?
    Par nolofinwe dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/10/2007, 15h27
  4. Rendre une macro Active lors de la réception de nouveau(x) mail(s)
    Par thomas.sculfort dans le forum VBA Outlook
    Réponses: 6
    Dernier message: 09/06/2007, 12h45

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