Android ListView检查触摸了哪一列

时间:2014-03-29 22:47:36

标签: android android-listview

我想知道是否有人可以帮助我,因为我似乎无法找到任何记录的方法,如何在列表视图中获取列的视图?

所以我有一个列表视图,一个自定义适配器有三个控件,两个textview和一个imageview,我想要发生的是当你按下我希望能够删除的最后一列(图像)那一行,我可以使用整行,但我希望用户必须单击imageview列才能触发删除。

我该怎么做?我必须在我的OnClickListener中引用什么才能检查所选的imageview列?

感谢您阅读

lstNotes.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {


        }
    });

position只引用列表行的位置,不允许您指定列索引或类似的东西

1 个答案:

答案 0 :(得分:0)

您无法使用lstNotes.setOnItemClickListener检测点击次数 - 这纯粹是针对项目点击次数。而是在列表视图的适配器中,您应该为每个视图项设置单击侦听器。

然后,您可以使用界面让您的活动知晓。以下内容可行:

public interface OnViewClickListener{
    void onTextView1Click();
    void onTextView2Click();
    void onImageViewClick();
}

OnViewClickListener listener;

public CustomAdapter(Context context, int layout, ArrayList<Object> list, OnViewClickListener listener) {
this.listener = listener;
   super(context, layout, list);
}

...

public View getView(int position, View convertView, ViewGroup viewGroup) {

...

    textView1.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            listener.onTextView1Click();
        }});

    textView2.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            listener.onTextView2Click();
        }});

    imageView.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            listener.onImageViewClick();
        }});
}