Creation d'un formulaire de calcul
Résolu
dzavatar
-
BunoCS Messages postés 15952 Date d'inscription Statut Modérateur Dernière intervention -
BunoCS Messages postés 15952 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Creation d'un formulaire de calcul
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
6 réponses
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)); } }); } }
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.
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 :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 :/
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 ^^