如果项包含自定义View类,如何实现自己的onClick方法,如何知道单击了哪个项?

时间:2015-08-05 09:11:16

标签: android listview android-custom-view custom-adapter

我有自定义View类,它包含2个TextView,RatingBar,ImageView和4个ImageButtons。当我单击此视图时,它会展开并显示这些ImageButtons。如果我再次单击,它将返回其原始状态。一切都很棒。 但我尝试制作这些自定义视图的ListView,因此带项目的XML文件仅包含此自定义视图。

我的列表有自定义适配器:

public class CustomViewAdapter extends BaseAdapter {

private Note[] items;
private LayoutInflater inflater;

public CustomViewAdapter(Context context,Note[] elements){
    this.items=elements;
    this.inflater=LayoutInflater.from(context);
}

@Override
public int getCount() {
    return items.length;
}

@Override
public Object getItem(int position) {
    return items[position];
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
     CustomView view;
    if (convertView == null) {
        view = (CustomView) inflater.inflate(R.layout.itemoflist, null);

    } else {
        view = (CustomView) convertView;

    }
     Note item = (Note) getItem(position);
    view.showNote(item);
    return view;
  }
}

MainActivity继承自ListActivity。当然,OnItemClick不起作用,而Item是可点击的。

那么我怎么知道项目的位置被点击以保存可扩展的项目状态?

1 个答案:

答案 0 :(得分:0)

如果要在listview的“自定义”视图中处理特定项目的单击侦听器,请在CustomViewAdapter的“自定义”视图中处理onClickListener。对于项目位置,在适配器的getView方法中,您将获得作为getView方法参数的位置。