Android自定义列表行按钮onclick获取索引

时间:2013-10-19 06:08:18

标签: android android-listview imagebutton onclicklistener

我创建了一个包含自定义列表行的列表视图。该列表行包含带有四个图像按钮的图像视图:

<?xml version="1.0" encoding="utf-8"?>

 <ImageView
     android:padding="2dip"
     android:id="@+id/list_image"
     android:layout_width="match_parent"
     android:layout_height="200dip"
     android:layout_alignParentTop="true"
     android:layout_centerHorizontal="true"
     android:src="@drawable/test" 
     android:scaleType="centerCrop"/>

 <LinearLayout
     android:paddingTop="5dip"         
     android:id="@+id/linear"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignLeft="@+id/list_image"
     android:layout_alignRight="@+id/list_image"
     android:layout_below="@+id/list_image"
     android:orientation="horizontal" >

      <ImageButton
         android:id="@+id/copyLink"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:src="@drawable/copy"
         android:background="@color/white"
         />

     <ImageButton
         android:id="@+id/visitHP"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:src="@drawable/website"
         android:background="@color/white" />

     <ImageButton
         android:id="@+id/delete"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:src="@drawable/delete"
         android:background="@color/white" />

     <ImageButton
         android:id="@+id/share"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:src="@drawable/ic_social_share"
         android:background="@color/white" />

 </LinearLayout>

如图:

enter image description here

现在我想在每个按钮上添加一个onclicklistener,我可以在其中获取行的行或行的对象的索引。

我尝试将OnClickListener实现到我的ArrayAdapter:

    ImageButton btn = (ImageButton)  convertView.findViewById(R.id.delete);
    btn.setOnClickListener(this);

    public void onclick(View v) {
       int img = v.getId();
    }

但有了这个我就不会得到行的索引。

我该如何处理这个问题?感谢

2 个答案:

答案 0 :(得分:3)

您可以在button.setTag()

中使用getView()

v.getTag()

中的onClick()

答案 1 :(得分:0)

它以这种方式工作:

public void onclick(View v) {
   int id = v.getId();
   switch(id) {
        case R.id.share: .... break;
        case R.id.delete:
           ...
}