1

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

<?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>

如图:

在此处输入图像描述

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

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

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

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

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

我应该如何解决这个问题?谢谢

4

2 回答 2

3

你可以button.setTag()getView()

v.getTag()onClick()

于 2013-10-19T06:15:47.043 回答
0

它以这种方式工作:

public void onclick(View v) {
   int id = v.getId();
   switch(id) {
        case R.id.share: .... break;
        case R.id.delete:
           ...
}
于 2013-10-19T06:13:56.103 回答