Image cliquable - android
-
24-10-2019 - |
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();
}
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.