如何将onClickListener添加到由自定义Cursor适配器填充的listview中的imageview?

时间:2014-03-28 12:38:14

标签: android listview android-listview android-cursoradapter

我有一个名为FavListActivity的活动,其中包含一个列表视图。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.xkcdreader.FavListActivity"
    tools:ignore="MergeRootFrame" >

<ListView
    android:id="@+id/favL"
    android:layout_width="match_parent"
    android:layout_height="452dp"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/headingTV" >

</ListView>

<TextView
    android:id="@+id/headingTV"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="8dp"
    android:text="Favourites"
    android:textSize="25dp" />

</RelativeLayout>

此列表的每一行都由此xml文件设置样式。每行有2个文本视图和一个按钮。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical">

    <TextView
        android:id="@+id/listTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="2dp"
        android:layout_toLeftOf="@+id/trashIV"
        android:focusable="false"
        android:gravity="center_vertical"
        android:paddingBottom="3dp"
        android:paddingLeft="5dp"
        android:text="Example application"
        android:textSize="26sp" />

    <ImageView
        android:id="@+id/trashIV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/listTitle"
        android:layout_alignParentRight="true"
        android:src="@drawable/trash" 
        android:onClick="trash"/>

</RelativeLayout>

此listview有一个名为CAdapter的自定义游标适配器:

public class CAdapter extends CursorAdapter {    

    public CAdapter(Context context, Cursor c) {
        super(context, c);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {

        TextView titleTV = (TextView) view.findViewById(R.id.listTitle);
        titleTV.setText("#"+cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1)))+" "+
                cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2))));

    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {

        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View retView = inflater.inflate(R.layout.row_item_layout, parent, false); 
        return retView;
    }
}

我的问题是如何为一行中的每个imageview设置onClick监听器。   Link to my ListView

1 个答案:

答案 0 :(得分:1)

你应该在你的适配器中没有活动。

yourImg.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // things you want to do 
    }
});