Android – méthode setOnClickListener comment ça marche?

J'ai du mal à comprendre ce code. Je reçois le chapeau findViewById obtiendra le widget de bouton, puis il va le lancer. Ensuite, il va utiliser le btn pour appeler la méthode setOnClickListener. Cependant, je ne sais pas quel argument est passé dans setOnClickListener et je n'ai jamais vu de code comme ça avant. Comment crée-t-il un nouvel objet mais est-il capable de créer une méthode propre dans l'argument d'une autre méthode? Serais génial si quelqu'un peut expliquer cela. De plus, quel type d'objet prend la méthode setOnClickListener?

btn = (Button)findViewById(R.id.firstButton); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv.setText(months[rand.nextInt(12)]); tv.setTextColor(Color.rgb(rand.nextInt(255)+1, rand.nextInt(255)+1, rand.nextInt(255)+1)); } }); 

  • Compresser des vidéos en utilisant FFMPEG et JNI
  • Android: setActionView (null) ne supprime pas les problèmes de vue et de largeur sur MenuItem avec ActionView
  • Fichier DB dans le dossier d'actifs. Est-ce que cela sera mis à jour?
  • Comment puis-je résoudre le «PlaceAutocompleteFragment»?
  • Android ListView addHeaderView () nullPointerException pour les vues prédéfinies définies dans XML
  • Affichage EditText avec le numéro de clavier uniquement
  • API Android 21 - widget TimePicker
  • Obtenir l'en-tête de la réponse (Rénover / Client OkHttp)
  • Android - Gardez l'intention ajoutée précédemment en cas d'augmentation de l'activité parentale
  • À quelle fréquence les statistiques de l'application Market sont-elles mises à jour?
  • Utilisation de Telephony Manager dans Android pour trouver le numéro IMEI
  • Envoyer un message GCM à un utilisateur particulier
  • 2 Solutions collect form web for “Android – méthode setOnClickListener comment ça marche?”

    Cela fonctionne comme ça. View.OnClickListenere est défini –

     public interface OnClickListener { void onClick(View v); } 

    Pour autant que nous sachions, vous ne pouvez pas instancier un objet OnClickListener , car il n'a pas de méthode mise en œuvre. Donc, il existe deux façons de passer: vous pouvez implémenter cette interface qui onClick méthode onClick comme ceci:

     public class MyListener implements View.OnClickListener { @Override public void onClick (View v) { // your code here; } } 

    Mais il est fastidieux de le faire chaque fois que vous souhaitez configurer un écouteur de clics. Donc, afin d'éviter cela, vous pouvez fournir la mise en œuvre de la méthode sur place, tout comme dans un exemple que vous avez donné.

    setOnClickListener prend View.OnClickListener comme son paramètre.

    Que ce manuel dit sur la méthode setOnClickListener est:

     public void setOnClickListener (View.OnClickListener l) 

    Ajouté au niveau API 1 Enregistrez un rappel à invoquer lorsque cette vue est cliquée. Si cette vue n'est pas cliquable, elle devient cliquable.

    Paramètres

    L View.OnClickListener: le rappel qui fonctionnera

    Et normalement, vous devez l'utiliser comme ça

     public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { // do something when the button is clicked } ... } 

    Jetez un oeil à cette leçon aussi Construire une calculatrice simple en utilisant Android Studio .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.