Aller au contenu

Propriété OnClick introuvable...


Recommended Posts

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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é par djipe
Lien vers le commentaire
Partager sur d’autres sites

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).

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é par naholyr
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...