0

私はアイテムを含むListViewを持っています:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layerItem"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    <ImageView
            android:layout_width="55dip"
            android:layout_height="fill_parent"
            android:id="@+id/layerImage"/>
    <TextView
            android:id="@+id/layerTitle"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:gravity="center_vertical"
            android:paddingLeft="6.0dip"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:minHeight="?android:attr/listPreferredItemHeight"/>
</LinearLayout>

ImageView をタッチして項目番号を取得するにはどうすればよいですか?

プライベート AdapterView.OnItemClickListener mLayersListListener = 新しい AdapterView.OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
    //here touch on ImageView or TextView?
}

};

4

1 に答える 1

1

ImageButtonImageViewよりも良い選択かもしれません。どちらにしても:

ImageButton mButton = (ImageButton)findViewById(R.id.layerImage);
mButton.setTag(new Integer(position));  // position is the item number
mButton.setOnClickListener (new OnClickListener() {
 public void onClick(View v)
 {
   // handle the image click/touch
   Integer position = (Integer)v.getTag();
 }
});

「アイテム番号を取得する」とは、リストビューの位置を取得することを意味すると思いますか?タグオブジェクトを使用することは、この情報を渡すための1つの可能な方法です。

しかし、リストでsetOnItemClickListener()を使用してみませんか?ユーザーは画像またはテキストをクリックできますが、このハンドラーはリストアイテムの位置をきれいに渡します。

ListView mList = ...;
mList.setOnItemClickListener(new OnItemClickListener()
{
 public void onItemClick(AdapterView<?> parent, View view, int position, long id)
 {
   // position is the item number
 }
});

}

于 2012-08-09T17:53:35.083 に答える