Bonjour à toutes et tous
Après avoir parcouru le net , lu de nombreux de posts et suivi des tutos, je n'ai pas réussi à débboger mon (premier) programme.
Nouveau dans la programmation Android (et ce forum), je me décide à vous soumettre mon problème.Je n'ai rien trouvé dans la FAQ qui puisse le résoudre.
J'ai vu qu'il fallait utiliser la fonction putExtra avant startActivity pour envoyer des données d'une activity à une autre.
Je change bien d'activité avec une Intent et ma variable est bien récupérée dans la seconde activité, puisque je peux l'afficher avec un TextView.
Cependant, je ne peux pas l'utiliser pour effectuer un calcul : il y a un cratch !(Je pense qu'il s'agit d'un problème de type de variable).
Ma question : est-ce que l'on peut transférer directement une variable de type Integer ou Double, saisie un EditText sans qu'elle soit convertie, ou bien bien une conversion est-elle toujours nécessaire da la seconde activité, du type String vers Double par exemple ? Comment fait-on ? Est-ce un problème d'import de classe ?
Je vous soumets mon code et remercie sincèrement celles ou ceux qui pourront me venir en aide en me montrant où est l'erreur et éventuellement en me donnant la solution.
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 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Dans la méthode OnCreate, on définit la vue à laide de la méthode setContentView //et on lui affecte un R.layout.activity qui représente notre vue, déclarée dans le dossier Layout. setContentView(R.layout.activity_select3); //récupération de l'EditText grâce à son ID final EditText indice_saisi = (EditText) findViewById(R.id.user_indice); //récupération du bouton LANCER LE CALCUL grâce à son ID Button calculButton = (Button) findViewById(R.id.calcul); //on applique un écouteur d'événement au clique sur le bouton calculButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent monIntent5 = new Intent(Select3Activity.this, DisplayActivity.class); //Lors du clic sur le bouton, on récupère le texte saisi par lutilisateur (getText().toString) //Pour finir, on associe cette valeur (texte) avec lintent déclaré précédemment (méthode putExtra) monIntent5.putExtra(EXTRA_CALCUL, indice_saisi.getText().toString()); startActivity(monIntent5); } }); }Merci encore à qui pourra m'aider !
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 public class DisplayActivity extends Activity { //On déclare toutes les variables dont on aura besoin et initialisation public String EXTRA_CALCUL = "user_indice"; public double v_base = 999; public double indiceRecup = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display); //1 - RECUPERER LA VALEUR DE L'INDICE SAISI A L'ECRAN PRECEDENT Intent monIntent5 = getIntent(); // Appel à un TextView TextView indiceDisplay = (TextView) findViewById(R.id.indice_display); if (monIntent5 != null) { //Affichage de la variable dans le Textview indiceDisplay.setText(monIntent5.getStringExtra(EXTRA_CALCUL)); } // Conversion de la varable Extra_Calcul en type Double double indiceRecup = Double.parseDouble(EXTRA_CALCUL); // Mon calcul double s_base = v_indice * indiceRecup; //2 - Définir le format des nombres (Présentation avec 2 décimales avec 0 significatif) DecimalFormat df = new DecimalFormat("0.00"); // Affichage à l'aide d'un Textview ((TextView)findViewById(R.id.base)).setText(df.format(s_base)+ " "); } }
Partager