Image cliquable-android
comment rendre une image cliquable? J'ai essayé certaines méthodes, mais sans succès. Voici le dernier code que j'ai essayé (il est cliquable mais obtient l'erreur):
ImageView btnNew = (ImageView) findViewById(R.id.newbutton);
btnNew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do stuff
}
});
et voici 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 je reçois cette erreur:
01-24 19:14:09.534: ERROR / AndroidRuntime (1461): java.lang.IllegalStateException: impossible de trouver une méthode clickImage (View) dans l'activité
VOICI LA SOLUTION:
the 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();
}
5 réponses
comme d'autres l'ont dit: Faites-en un ImageButton
et définissez 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 encodée dans un fichier res/drawable/to_top_button.png. Si l'utilisateur clique sur le bouton, la méthode scrollToTop()
est appelé. Cette méthode doit être déclarée dans la classe qui définit la mise en page avec le ImageButton
comme sa mise en page de contenu.
public void scrollToTop(View v) {
...
}
définir le handler OnClick de cette façon vous économise beaucoup de Dactylographie et aussi évite la nécessité de classes intérieures anonymes, ce qui est bénéfique pour l'empreinte de mémoire.
est-ce qu'un ImageButton fait ce que vous voulez?
Le message d'erreur que vous obtenez implique que vous n'avez pas de méthode dans votre activité qui correspond à votre gestionnaire onClick.
vous devriez avoir quelque chose comme clickImage(View view)
dans votre activité avec l'implémentation click handling.
vous pouvez utiliser la classe ImageButton... http://developer.android.com/reference/android/widget/ImageButton.html
vous avez défini la méthode onclick pour appeler" clickImage " lorsque l'image est cliquée dans votre XML, mais vous n'avez pas créé de méthode clickImage dans votre code. Vous ne devriez pas avoir besoin de configurer l'écouteur onclick du tout. Il suffit d'implémenter la méthode à partir de votre XML et vous devriez être défini.