0

私は、ネストされた LinearLayout と複数の ImageViews を持つ row_item.xml を持っています。ListView の各行に 2 x 2 の画像グリッドを生成します。onClick で、ユーザーがクリックした画像項目を知りたい。

onClick メソッドでは、 item.getClass() を使用して実際にどのアイテムが来ているかを確認しようとしましたが、LinearLayout が表示されます。これは行アイテムの最上位のレイアウトになると確信しています。これが私の行アイテムのスケルトンレイアウトです。クリックしたアイテムを任意の深さで取得できる一般的なアプローチを探しています。

<LinearLayout>
       <LinearLayout>
           <ImageView> </ImageView>
           <ImageView> </ImageView>
       </LinearLayout>         

       <LinearLayout>
           <ImageView> </ImageView>
           <ImageView> </ImageView>
       </LinearLayout>         
</LinearLayout>
4

2 に答える 2

0

listView を宣言する xml で適切なオプションを設定することにより、画像ビューをクリック可能に設定できます。そして、onclickListeners を imageViews に追加するだけです。私にとってうまくいった解決策は設定でした:

clickable
focusable
focusableInTouchMode

真に。_ これが完了したら、アダプタで getView/bindView setonClickListeners をイメージビューに設定できます。

于 2013-02-21T13:38:55.877 に答える
0

ImageView ごとに、次を追加します。

android:clickable="true"
android:onClick="myOnClickFunction"

次のようなコードを追加します。

public void myOnClickFunction(final View imageView) {
    // imageView.getId() - actual image view id.
}
于 2013-02-21T13:52:37.340 に答える