olivier97360 Posté(e) 14 avril 2010 Posté(e) 14 avril 2010 Voici mes sources: Approche programmatique: package com.oliviernouguier.android.calculette; import android.app.Activity; import android.os.Bundle; import android.widget.EditText; import android.view.View; import android.widget.*; public class calcul extends Activity { /** Called when the activity is first created. */ private TextView textv1, textv2, toperation, tresultat; private LinearLayout layout; private EditText etext1, etext2, eresultat; private Button buttplus, buttmoins, buttmulti, buttdiv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Init(); Draw(); } public void Init() { layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); textv1 = new TextView(this); textv1.setText("Entrez un nombre:"); textv2 = new TextView(this); textv2.setText("Entrez un deuxième nombre:"); etext1 = new EditText(this); etext1.setText(""); etext2 = new EditText(this); etext2.setText(""); buttplus = new Button(this); buttplus.setText("+"); buttplus.setClickable(true); buttplus.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Buttplus(); } }); buttmoins = new Button(this); buttmoins.setText("-"); buttmoins.setClickable(true); buttmoins.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Buttmoins(); } }); buttmulti = new Button(this); buttmulti.setText("*"); buttmulti.setClickable(true); buttmulti.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Buttmulti(); } }); buttdiv = new Button(this); buttdiv.setText("/"); buttdiv.setClickable(true); buttdiv.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Buttdiv(); } }); tresultat = new TextView(this); tresultat.setText("Résultat:"); eresultat = new EditText(this); eresultat.setText(""); toperation = new TextView(this); toperation.setText("Opération"); } public void Draw() { layout.addView(textv1); layout.addView(etext1); layout.addView(textv2); layout.addView(etext2); layout.addView(toperation); layout.addView(buttplus); layout.addView(buttmoins); layout.addView(buttmulti); layout.addView(buttdiv); layout.addView(tresultat); layout.addView(eresultat); setContentView(layout); } public void Buttplus(){ Double result = new Double(etext1.getText().toString()) + new Double(etext2.getText().toString()); eresultat.setText(Double.toString(result)); } public void Buttmoins(){ Double result = new Double(etext1.getText().toString()) - new Double(etext2.getText().toString()); eresultat.setText(Double.toString(result)); } public void Buttmulti(){ Double result = new Double(etext1.getText().toString()) * new Double(etext2.getText().toString()); eresultat.setText(Double.toString(result)); } public void Buttdiv(){ Double result = new Double(etext1.getText().toString()) / new Double(etext2.getText().toString()); eresultat.setText(Double.toString(result)); } } Approche déclarative: fichier xml <?xml version="1.0" encoding="utf-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > fichier java package com.olivier.androiid.calculatrice; import android.app.Activity; import android.os.Bundle; import android.widget.EditText; //import android.text.Editable; import android.view.View; public class calculact extends Activity { private EditText num1, num2, resulttex; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //text1 = (EditText) findViewById(R.id.EditText01); num1 = (EditText) findViewById(R.id.EditText01); num2 = (EditText) findViewById(R.id.EditText02); resulttex = (EditText) findViewById(R.id.EditText03); } public void Buttplus(View v){ //String result = null; Double result = new Double(num1.getText().toString()) + new Double(num2.getText().toString()); if (v.getId()==R.id.Button01) resulttex.setText(Double.toString(result)); } public void Buttmoins(View v){ //String result = null; Double result = new Double(num1.getText().toString()) - new Double(num2.getText().toString()); if (v.getId()==R.id.Button02) resulttex.setText(Double.toString(result)); } public void Buttmulti(View v){ //String result = null; Double result = new Double(num1.getText().toString()) * new Double(num2.getText().toString()); if (v.getId()==R.id.Button03) resulttex.setText(Double.toString(result)); } public void Buttdiv(View v){ //String result = null; Double result = new Double(num1.getText().toString()) / new Double(num2.getText().toString()); if (v.getId()==R.id.Button04) resulttex.setText(Double.toString(result)); } } Citer
popolbx Posté(e) 15 avril 2010 Posté(e) 15 avril 2010 En fait il répond à une question posée plusieurs fois. comment déclarer un evenement et l'associer par exemple à un bouton. tu as deux choix: par code faire un setonclicklistener ou direct dans le xml associer la fonction... une petite intro de présentation du post aurait été plus sympa. Citer
Xtof Posté(e) 15 avril 2010 Posté(e) 15 avril 2010 Bah ... A minuit et demi, il a peut-être voulu aller se coucher :) Il va probablement revenir sur son post et ajouter quelques explications .. ;) Citer
olivier97360 Posté(e) 15 avril 2010 Auteur Posté(e) 15 avril 2010 Bonjour, je vous donne quelques explications :): sous Android on peut développer de deux façons différentes: -soit de façon déclarative c à d en exploitant un fichier xml que l'on va "parser", ce fichier contient toutes les déclarations des widgets (Button, TextEdit, ...) par exemple quand vous ouvrez un fichier sous Eclipse l'exemple Hello est écrit de manière déclarative, ça c'est la premiére solution. -soit vous programmer de façon programmatique c à d en programmant un fichier java pur où vous déclarez tout dedans (widget, ...). Des questions ? Olivier Citer
Infernus Posté(e) 15 avril 2010 Posté(e) 15 avril 2010 Interessant mais, quel est l'interêt pour le commun des mortels ? J'aurais plutôt vu ca dans la partie programmation. Et sinon, ca change quoi de le faire de façon déclarative ou programmatique ? Merci d'avance :) Citer
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.