クリック可能な画像-Android
-
24-10-2019 - |
質問
画像をクリック可能にするにはどうすればよいですか?私はいくつかの方法を試しましたが、成功しませんでした。これが私が試した最後のコードです(クリック可能ですがエラーが発生します):
ImageView btnNew = (ImageView) findViewById(R.id.newbutton);
btnNew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do stuff
}
});
そして、これが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" />
このコードを実行し、画像をクリックすると、このエラーが表示されます。
01-24 19:14:09.534:ERROR/AndroidRuntime(1461):Java.lang.IllegalStateException:アクティビティでメソッドクリックイメージ(表示)を見つけることができませんでした
これが解決策です:
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" />
コード :
public void clickNew(View v)
{
Toast.makeText(this, "Show some text on the screen.", Toast.LENGTH_LONG).show();
}
解決
他の人が言ったように:これを作ります ImageButton
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"
/>
ここでは、ファイルres/drawable/to_top_button.pngでエンコードされています。ユーザーがボタンをクリックした場合、メソッド scrollToTop()
呼ばれています。この方法は、レイアウトを設定するクラスで宣言する必要があります ImageButton
コンテンツレイアウトとして。
public void scrollToTop(View v) {
...
}
この方法でOnClickハンドラーを定義すると、多くのタイピングを節約でき、メモリフットプリントに有益な匿名の内部クラスの必要性も防ぎます。
他のヒント
Anをします ImageButton あなたが望むことをしますか?
あなたが取得するエラーメッセージは、あなたのアクティビティにオンクリックハンドラーに一致する方法を持っていないことを意味します。
あなたは次のようなものを持っているはずです clickImage(View view)
クリック処理の実装を使用したアクティビティで。
ImageButtonクラスを使用することができます...http://developer.android.com/reference/android/widget/imagebutton.html
使う ImageButton ;)
XMLで画像がクリックされたときに「ClickImage」を呼び出すようにOnClickメソッドを設定しましたが、コードでClickImageメソッドを作成していません。 OnClickリスナーをまったく設定する必要はありません。 XMLからメソッドを実装するだけで、設定する必要があります。