Creation d'un formulaire de calcul
Résolu/Fermé
dzavatar
-
Modifié le 30 oct. 2019 à 11:30
BunoCS Messages postés 15497 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 2 janvier 2025 - 7 nov. 2019 à 08:49
BunoCS Messages postés 15497 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 2 janvier 2025 - 7 nov. 2019 à 08:49
A voir également:
- Creation d'un formulaire de calcul
- Calcul moyenne excel - Guide
- Formulaire de réclamation facebook - Guide
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
6 réponses
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
3 913
4 nov. 2019 à 16:10
4 nov. 2019 à 16:10
Et bien il est la ton souci... Dans ton XML, tu dis, "lorsque j'appuie sur le bouton
- supprimer la notion de onClick dans le xml
- mettre le contenu de ta méthode
calcula, je veux appeler la méthode
calcula()". Sauf que, dans cette même méthode, tu redis "lorsque j'appuie sur le bouton, je veux appeler ce code". Tu vois ? Il faut donc :
- supprimer la notion de onClick dans le xml
- mettre le contenu de ta méthode
calcula()ailleurs, dans le
onCreate()par exemple
Alors j'avance un peu ... mais je coince sur l'affichage du resultat ... Quand je clic sur le bouton calculez , la page devient blanche et je reviens sur l'activité principal du début au lieu de rester sur cette activité et d'afficher le resultat ...
public class Extrudeur extends AppCompatActivity { private Button calcul; private EditText longa,longb,longc,stepa; private TextView stepb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_extrudeur); longa = (EditText) findViewById(R.id.longa); longb = (EditText) findViewById(R.id.longb); longc = (EditText) findViewById(R.id.longc); stepa = (EditText) findViewById(R.id.stepa); stepb = (TextView) findViewById(R.id.stepb); calcul= (Button) findViewById(R.id.calcul); calcul.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String longanum = longa.getText().toString(); String longbnum = longb.getText().toString(); String longcnum = longc.getText().toString(); String stepanum = stepa.getText().toString(); Integer calcul1 = Integer.parseInt(longbnum) - Integer.parseInt(longbnum); Integer calcul2 = calcul1 * Integer.parseInt(stepanum); Integer calcul3 = Integer.parseInt(longbnum) - Integer.parseInt(longcnum); Integer resultat = calcul2 / calcul3; stepb.setText(Integer.toString(resultat)); } }); } }
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
3 913
30 oct. 2019 à 11:34
30 oct. 2019 à 11:34
Hello,
ça, ça donne 0, en supposant que le
N'hésites pas à lancer ton app en debug, à mettre des points d'arrêts (breakpoints) et à voir pas à pas ce qui se passe.
Integer calcul1 = Integer.parseInt(longbnum) - Integer.parseInt(longbnum);
ça, ça donne 0, en supposant que le
parseIntse passe bien. Tu m'avais l'air de plutôt utiliser des
Float, non ?
N'hésites pas à lancer ton app en debug, à mettre des points d'arrêts (breakpoints) et à voir pas à pas ce qui se passe.
dzavatar
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
6 novembre 2019
Modifié le 4 nov. 2019 à 09:15
Modifié le 4 nov. 2019 à 09:15
Désolé pour le temps de réponse mais j'ai ete pas mal pris ...
Bon par contre le soucis à fini par trouver une solution :p j'ai un peu réécris la partie calcul .. du coup on ne sais jamais , je partage quand meme ma solution , on ne sais jamais ;)
vu que j'ai des parties qui demandais des chiffres décimaux je suis passé par des double plus une réécriture du format final.
Sa commence à rentrer tout doucement ;)
Par contre il me reste un tout petit soucis ... une fois mes champs remplis , je dois au moins appuyer 2 fois sur le bouton calculer pour que la réponse s'affiche... une idée du pourquoi ???
Merci en tout cas d'avoir répondu :)
Bon par contre le soucis à fini par trouver une solution :p j'ai un peu réécris la partie calcul .. du coup on ne sais jamais , je partage quand meme ma solution , on ne sais jamais ;)
vu que j'ai des parties qui demandais des chiffres décimaux je suis passé par des double plus une réécriture du format final.
Sa commence à rentrer tout doucement ;)
public void calculera(View view){ final EditText valeuraa = findViewById(R.id.valeuraa); final EditText valeurab = findViewById(R.id.valeurab); final EditText stepaa = findViewById(R.id.stepaa); final TextView att3 = findViewById(R.id.att3); Button calculera= findViewById(R.id.calculera); calculera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { double valeur1num = ParseDouble(valeuraa.getText().toString()) ; double valeur2num = ParseDouble(valeurab.getText().toString()); double stepnum = ParseDouble(stepaa.getText().toString()); double calcul1 = valeur1num * stepnum; double stepfin = calcul1 / valeur2num; if (valeur1num != 0) { android.icu.text.DecimalFormat resultatfinal= new android.icu.text.DecimalFormat("#.##"); att3.setText(""); AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(this,), R.style.AlertDialogStyle); builder.setTitle(getString(R.string.Stepcalculator_les_axes)); builder.setMessage("Step : " + resultatfinal.format(stepfin)); builder.setPositiveButton(android.R.string.ok, null); builder.show(); } else { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle(R.string.Stepcalculator_les_axes); builder.setMessage(R.string.tout_les_champs); builder.setPositiveButton("ok", null); builder.show(); }
Par contre il me reste un tout petit soucis ... une fois mes champs remplis , je dois au moins appuyer 2 fois sur le bouton calculer pour que la réponse s'affiche... une idée du pourquoi ???
Merci en tout cas d'avoir répondu :)
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
3 913
4 nov. 2019 à 09:17
4 nov. 2019 à 09:17
Cool, ça ! Un souci résiduel ? ça arrive ;)
Quand est-ce que tu appelles ta méthodes
Note : quand tu ajoutes les balises code, penses à indiquer que c'est du Java, on va gagner en lisibilité.
Quand est-ce que tu appelles ta méthodes
calculera()? Si tu t'appelles sur le clic du bouton, il est là ton souci.
Note : quand tu ajoutes les balises code, penses à indiquer que c'est du Java, on va gagner en lisibilité.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dzavatar
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
6 novembre 2019
4 nov. 2019 à 13:34
4 nov. 2019 à 13:34
Désolé mais je ne comprends pas bien la question , du coup je ne sais quoi répondre ...
J'ai dans mon fragment pour cette exemple la ... 3 textview à remplir et ensuite le bouton ...
Je vois par contre que dans le xml du bouton , l'id du onclick est souligné en rouge. au cas ou la lettre en fin de mot calcul est une indication pour moi pour quel calcul sa touche...
En sois c'est plus par soucis de détails qu'autre choses car dans l’ensemble tout fonctionne. L'appli tourne bien et j'ai pas encore eu de retour comme quoi cela était dérangeant.
Deso pour le code , je n'avais pas capté qu'il y avait un choix de language :/
J'ai dans mon fragment pour cette exemple la ... 3 textview à remplir et ensuite le bouton ...
Je vois par contre que dans le xml du bouton , l'id du onclick est souligné en rouge. au cas ou la lettre en fin de mot calcul est une indication pour moi pour quel calcul sa touche...
<Button android:id="@+id/calculera" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="40dp" android:onClick="calculera" android:layout_marginEnd="8dp" android:background="@drawable/color_btn2" android:text="@string/calculer" android:ems="11" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/stepaa" />
En sois c'est plus par soucis de détails qu'autre choses car dans l’ensemble tout fonctionne. L'appli tourne bien et j'ai pas encore eu de retour comme quoi cela était dérangeant.
Deso pour le code , je n'avais pas capté qu'il y avait un choix de language :/
dzavatar
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
6 novembre 2019
4 nov. 2019 à 18:57
4 nov. 2019 à 18:57
Ha oui ok , je vois oui la du coup , c'est un peu plus clair
du coup oui la effectivement je n'ai plus cette effet de latence en double clic ... ^^
Un grand merci à toi pour tes lumières ^^
du coup oui la effectivement je n'ai plus cette effet de latence en double clic ... ^^
Un grand merci à toi pour tes lumières ^^
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
3 913
6 nov. 2019 à 09:12
6 nov. 2019 à 09:12
Cool ! S'il n'y a plus de problèmes, merci de passer le topic en "résolu"
dzavatar
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
6 novembre 2019
>
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
6 nov. 2019 à 19:22
6 nov. 2019 à 19:22
je n'aurais pas été contre :p mais je n'en ai apparemment pas la possibilité :/ pas de bouton , pas d'option me laissant se choix :/
BunoCS
Messages postés
15497
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
2 janvier 2025
3 913
7 nov. 2019 à 08:49
7 nov. 2019 à 08:49
A côté du titre de ta question > route crantée > Marquer comme résolu
(et oui, malheureusement, cela ne se devine pas :/ )
(et oui, malheureusement, cela ne se devine pas :/ )