djipe Posted March 29, 2010 Share Posted March 29, 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 :) Quote Link to comment Share on other sites More sharing options...
Kuiplo Posted March 29, 2010 Share Posted March 29, 2010 (edited) tonbouton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // Ton code ici } }); Voila :) Ps : c'est pas le bon forum... Edited March 29, 2010 by Kuiplo Quote Link to comment Share on other sites More sharing options...
djipe Posted March 29, 2010 Author Share Posted March 29, 2010 Merci, j'vais tester. Pour la prochaine fois, j'essayerai de poster au bon endroit :) Quote Link to comment Share on other sites More sharing options...
djipe Posted March 29, 2010 Author Share Posted March 29, 2010 (edited) 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 :) Edited March 29, 2010 by djipe Quote Link to comment Share on other sites More sharing options...
popolbx Posted March 29, 2010 Share Posted March 29, 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). Quote Link to comment Share on other sites More sharing options...
naholyr Posted March 29, 2010 Share Posted March 29, 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... Quote Link to comment Share on other sites More sharing options...
djipe Posted March 29, 2010 Author Share Posted March 29, 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 ? Quote Link to comment Share on other sites More sharing options...
komanaki Posted March 29, 2010 Share Posted March 29, 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 ! Quote Link to comment Share on other sites More sharing options...
popolbx Posted March 29, 2010 Share Posted March 29, 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 Quote Link to comment Share on other sites More sharing options...
naholyr Posted March 29, 2010 Share Posted March 29, 2010 (edited) 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. Edited March 29, 2010 by naholyr Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.