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 :

Problème Activité Android


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Points : 84
    Points
    84
    Par défaut Problème Activité Android
    Bonjour,

    J'ai un petit problème, j'ai une application android je lance l'application est j'arrive sur mon activité principale, 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    public class StartActivity extends Activity implements OnClickListener {
     
    	/**
             * Déclaration des variables
             */
    	private ImageButton activity1, activity2;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.start_activity);
     
    		activity1 = (ImageButton) findViewById(R.id.activity1);
    		activity1.setBackground(null);
    		activity1.setOnClickListener(this);
     
    		activity2 = (ImageButton) findViewById(R.id.activity2);
    		activity2.setBackground(null);
    		activity2.setOnClickListener(this);
     
    	}
     
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.start, menu);
    		return true;
    	}
     
    	public void onClick(View v) {
     
    		if (v == activity1) {
    			Intent in = new Intent(this, Activity1.class);
    			startActivity(in);
    		}
     
    		if (v == activity2) {
    			Intent in = new Intent(this, Activity2.class);
    			startActivity(in);
    		}
     
    	}
     
    	@Override
    	public void onBackPressed() {
    		System.exit(0);
    	}
    }
    Du coup, comme vous pouvez le voir j'ai deux boutons sur cette activité principale, je clic alors sur le bouton de droite qui va m'amener vers Activity2, dont 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    public class Activity2 extends Activity {
     
    	/** EditText **/
    	public EditText champ1;
    	public EditText champ2;
     
    	public int valChamp1 = 4;
    	public int valChamp2 = 2;
     
    	/** Contexte **/
    	public Context context;
     
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity2);
    		context = getApplicationContext();
     
    		champ1 = (EditText) findViewById(R.id.edit_champ1);
    		champ1.setText(String.valueOf(getChamp1()));
     
    		champ2 = (EditText) findViewById(R.id.edit_champ2);
    		champ2.setText(String.valueOf(getChamp2()));
     
     
    		/** Bouton Validation des champs **/
    		Button validButton = (Button) findViewById(R.id.valide_btn);
     
    		/** Bouton Reset des champs **/
    		Button resetButton = (Button) findViewById(R.id.reset_btn);
     
    		/**
                     * Bouton Valider
                     */
    		validButton.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
     
    				int val1, val2;
     
    				/** Recuperation des données du champ1 **/
    				val1 = Integer.valueOf(champ1.getText()
    						.toString());
    				setChamp1(val1);
     
    				/** Recuperation des données du champ2 **/
    				val2 = Integer.valueOf(champ2.getText().toString());
    				setChamp2(val2);
     
    			}
    		});
     
    		/**
                     * Bouton Reset
                     */
    		resetButton.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {
     
    				champ1.setText("");
    				champ2.setText("");
     
    			}
    		});
     
    	}
     
    	public int getChamp1() {
    		return champ1;
    	}
     
    	public void setChamp1(int c) {
    		this.champ1 = c;
    	}
     
    	public int getChamp2() {
    		return champ2;
    	}
     
    	public void setChamp2(int c) {
    		this.champ2 = c;
    	}
     
    }
    Comme vous pouvez le voir j'ai deux champs, champ1 et champ2 qui ont respectivement les valeurs suivantes, par défaut 4 et 2. Du coup, mon problème est que lorsque je modifie ces valeurs et que je valide mes variables prennent bien les valeurs saisies seulement si j'appui sur la flèche retour de la tablette qui me ramène à mon activité principale et que par la suite je retourne sur mon activité2 mes champs ne gardent pas les valeurs saisies précédemment mais prennent les valeurs par défaut, comment je peux résoudre ce problème ?

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Dans StartActivity:

    pas besoin de stocker les views...
    un simple test sur l'ID de la view reçue dans le onClick() devrait suffire.

    D'autre part:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Override
    	public void onBackPressed() {
      System.exit(0);
    	}


    Pas de System.exit(0); Le système s'en chargera tout seul si nécessaire !
    (le onBackPressed ne sert à rien ici).


    Pour le probleme... c'est normal... l'activité 2 ne sauvegarde jamais ses données (et ne les relis pas à la création).
    Comme cette activité peut être recrée (nouvelle instance) par plein de choses (par exemple une simple rotation de l'écran, ou l'apparition d'un appel lorsque le téléphone est short en mémoire), tu vas perdre les données.

    Après dieu seul sait ce que tu veux faire de ces données, peut-être les conserver n'est pas nécessaire ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 118
    Points : 84
    Points
    84
    Par défaut
    je te remercie pour tous ces conseils, je comprends mieux maintenant. Pour ces données la j'en ai besoin pour les envoyer vers une autre activité mais comme tu le dis dans ces cas là je n'ai pas vraiment besoin de les sauvegarder.

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Si tu n'as pas besoin de les sauvegarder, il vaut dans ce cas mieux utiliser les valeurs par défaut des TextEdit au niveau de l'UI.

    Si les valeurs sont modifiées et que le système doivent détruire l'instance / la recréer, le système par défaut se chargera de remettre les valeurs rentrées par l'utilisateur.
    Par contre "back" / "click2" resetera toujours les données.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/07/2014, 15h18
  2. problème clavier android affiche des caractères chinois
    Par étudiante_info dans le forum Android
    Réponses: 0
    Dernier message: 22/03/2011, 11h07
  3. Problème téléchargement Android SDK
    Par Invité dans le forum Android
    Réponses: 6
    Dernier message: 28/10/2010, 18h13
  4. Probléme telechargement ANDROID sdk
    Par badr007 dans le forum Android
    Réponses: 3
    Dernier message: 31/07/2010, 23h45
  5. problème activité IE8
    Par Lancelot du Lac dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 08/04/2008, 06h12

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