Jump to content

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

Link to comment
Share on other 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 :)

Edited by djipe
Link to comment
Share on other 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).

Link to comment
Share on other 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...

Link to comment
Share on other 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 ?

Link to comment
Share on other 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

Link to comment
Share on other 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.

Edited by naholyr
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...