Question

Comment puis-je faire cliquable d'image? J'ai essayé une certaine façon, mais sans succès. Voici le dernier code j'ai essayé (il est cliquable, mais obtient une erreur):

    ImageView btnNew = (ImageView) findViewById(R.id.newbutton);
    btnNew.setOnClickListener(new View.OnClickListener() {

          @Override
          public void onClick(View v) {

            // do stuff
          }

        });      

et est ici la partie de xml:

    <ImageView 
    android:src="@drawable/tbnewbutton" 
    android:text="@string/hello"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:id="@+id/newbutton"
    android:clickable="true"
    android:onClick="clickImage"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" />

Lors de l'exécution de ce code, et en cliquant sur l'image que je reçois cette erreur:

01-24 19: 14: 09,534: ERREUR / AndroidRuntime (1461): java.lang.IllegalStateException: Impossible de trouver une méthode clickImage (View) dans l'activité

VOICI LA SOLUTION:

Le fichier XML:

    <ImageButton
    android:src="@drawable/tbnewbutton" 
    android:text="@string/hello"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:id="@+id/newbutton"
    android:clickable="true"
    android:onClick="clickNew"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="@null" />

Le code:

    public void clickNew(View v)
{
    Toast.makeText(this, "Show some text on the screen.", Toast.LENGTH_LONG).show();
}
Était-ce utile?

La solution

Comme autre dit: en faire un ImageButton et définir son attribut onClick

<ImageButton
     android:layout_height="wrap_content"
     android:layout_width="wrap_content"
     android:layout_gravity="left"
     android:onClick="scrollToTop"
     android:src="@drawable/to_top_button"
/>

L'image est ici codée dans un fichier res / drawable / to_top_button.png. Si l'utilisateur clique sur le bouton, est appelée la méthode scrollToTop(). Cette méthode a besoin d'être déclarés dans la classe qui définit la mise en page avec le ImageButton comme la mise en page du contenu.

public void scrollToTop(View v) {
    ...
}

Définir le gestionnaire OnClick cette façon vous permet d'économiser beaucoup de frappe et empêche également la nécessité de classes internes anonymes, ce qui est bénéfique pour l'empreinte mémoire.

Autres conseils

Est-ce que ImageButton faire ce que vous voulez?

Le message d'erreur que vous obtenez implique que vous ne disposez pas d'une méthode dans votre activité qui correspond à votre gestionnaire onClick.

Vous devriez avoir quelque chose comme clickImage(View view) dans votre activité en cliquant la mise en œuvre de manipulation.

Vous pouvez simplement utiliser la classe ImageButton ... http://developer.android.com/reference/android/widget/ImageButton.html

Utiliser un ImageButton ;)

Vous avez défini la méthode onclick appeler « clickImage » lorsque l'image est cliqué dans votre XML, mais vous n'avez pas créé une méthode clickImage dans votre code. Vous ne devriez pas besoin de mettre l'auditeur onclick du tout. Il suffit de mettre en œuvre la méthode de votre XML et vous devriez être ensemble.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top