djipe Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 Salut :) J'me suis lancé à tester des tutos un peu plus complexes que "Hello Wolrd" : L'appli comporte 1 edit text et 3 button. Visiblement, tout le tuto se déroule correctement, sauf que dans les propriétés des buttons, je ne parviens pas à trouver la propriété OnClick. En théorie, c'est simple, il suffit de se placer entre N et P (Next focus up et Panding). Bien bizarrement entre les deux, y a rien. Est-ce que qqun sait si cette propriété porte un autre nom ? Mon but est de lui dire quelle procedure réaslier. Par avance merci :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiplo Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 (modifié) tonbouton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // Ton code ici } }); Voila :) Ps : c'est pas le bon forum... Modifié 29 mars 2010 par Kuiplo Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djipe Posté(e) 29 mars 2010 Auteur Share Posté(e) 29 mars 2010 Merci, j'vais tester. Pour la prochaine fois, j'essayerai de poster au bon endroit :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djipe Posté(e) 29 mars 2010 Auteur Share Posté(e) 29 mars 2010 (modifié) Ca fonctionne tjs pas :( Voilà ce que j'ai comme code : package com.cyrilmottier.android.hellworld; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class HelloWorld extends Activity { private EditText text; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (EditText) findViewById(R.id.EditText01); text.setText("No button pressed"); } // Will be connected with the buttons via XML public void myClickHandler(View view) { switch (view.getId()) { case R.id.Button01: text.setText("Button 1 was clicked"); break; case R.id.Button02: text.setText("Button 2 was clicked"); break; case R.id.Button03: text.setText("Button 3 was clicked"); break; } Button03.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // Ton code ici text.setText("Button 3 was clicked"); } }; } Si j'pouvais trouver l'équivalent de OnClick, j'pourais directement pointer vers la procédure myClickHandler Si qqun voit où est mon erreur :) Modifié 29 mars 2010 par djipe Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 http://developer.android.com/intl/zh-TW/reference/android/view/View.html#attr_android:onClick android:onClick Name of the method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. For instance, if you specify android:onClick="sayHello", you must declare a public void sayHello(View v) method of your context (typically, your Activity). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
naholyr Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 Tiens, en passant, question bonne pratique tout ça tout ça... Vous utilisez quoi vous généralement ? L'attribut onClick ou la méthode setOnClickListener ? Je penche pour la seconde méthode, mais je ne suis pas expérimenté dans le dév Android... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djipe Posté(e) 29 mars 2010 Auteur Share Posté(e) 29 mars 2010 http://developer.android.com/intl/zh-TW/reference/android/view/View.html#attr_android:onClick android:onClick Name of the method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. For instance, if you specify android:onClick="sayHello", you must declare a public void sayHello(View v) method of your context (typically, your Activity). Si j'ai bien compris, il faut déclarer l'utilisation du Onclick. J'ai essayé mais sans succès :( Est-ce que tu vois ce qui ne vas pas dans mon code ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
komanaki Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 Je te conseille comme l'a dit naholyr d'utiliser le onClickListener qui est bien plus simple et qui fonctionne parfaitement. C'est d'ailleurs la seule façon de capter les clicks que je connaisse ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 http://developer.android.com/intl/zh-TW/reference/android/view/View.html#attr_android:onClick android:onClick Name of the method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. For instance' date=' if you specify android:onClick="sayHello", you must declare a public void sayHello(View v) method of your context (typically, your Activity). [/quote'] Si j'ai bien compris, il faut déclarer l'utilisation du Onclick. J'ai essayé mais sans succès :( Est-ce que tu vois ce qui ne vas pas dans mon code ? bein sans le code de la vue xml....je vais avoir du mal à te dire.... un truc du genre Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
naholyr Posté(e) 29 mars 2010 Share Posté(e) 29 mars 2010 (modifié) Tu as ton activity, avec la méthode que tu veux appeler lors du clic : public class MonActivity extends Activity { ... public void executeDoncCaSiJeCliqueSurLeBouton(View monBouton) { ... } } Et dans ton layout tu vas définir ça : ça c'est pour la méthode par déclaration dans le layout, sinon tu peux aussi tout faire dans ton activity : public class MonActivity extends Activity { private OnClickHandler actionAExecuterAuClickSurMonBouton = new OnClickHandler() { @Override public void onClick(View v) { ... } }; @Override protected void onCreate() { ... ((Button) findViewById(R.id.monBouton)).setOnClickHandler(actionAExecuterAuClickSurMonBouton); } } Attention hein, tout ça c'est du code à ne pas copier-coller, il y a sans doute des erreurs de syntaxe hein ^^ Et personnellement je me demande quelle méthode est la plus efficace/maintenable/etc.. Bref la mieux :P Et je pense que la deuxième est plus simple, mais elle est peut-être moins "designer-friendly" que la première. Modifié 29 mars 2010 par naholyr Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.