找出一个项目在android中的listView中单击

时间:2014-08-18 10:47:00

标签: android android-listview

我的自定义列表视图中有大约150个项目。我正在尝试实施以下内容:

list.setOnItemClickListener(new OnItemClickListener()         {

1。我得到了项目的位置

2。从ArrayList

获取数据

第3。将数据添加到数据库。

这部分工作正常。

但是,如果我想通过点击该项目从数据库中删除某个特定项目,我无法实现这一部分?

原因是因为我不确定是否点击了该项目?我有这个问题主要是当我想在listView中实现搜索并将所选项添加到数据库并从数据库中删除所选项时。

    // Click event for single list row
    list.setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) 
        {

            if (notfromsearch == true)
            {
                String profile_ID = profileList.get(position).get(KEY_ID);
                String profile_DISPLAY_NAME = profileList.get(position).get(KEY_DISPLAY_NAME);
              //add to database now

            }
            elseif (notfromsearch == false)
            {
                String SearchResult_profile_ID = searchProfileResults.get(position).get(KEY_ID);
                String SearchRResult_profile_DISPLAY_NAME = searchProfileResults.get(position).get(KEY_DISPLAY_NAME);
                //add to database now
            }
        }
    }); 

但如何实现从数据库中删除?我无法区分是否在数据库之前单击了该项目,或者是否从数据库中删除该项目。

有人可以帮我解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

在列表视图中,使用

  

setOnItemClickListener

你可以做你想做的事。

答案 1 :(得分:0)

使用context menu删除database

中的项目

long press显示delete/edit选项,并根据需要执行进一步操作。

检查here上下文菜单示例

修改

您还可以将button/image放入listviewdelete项目,然后使用delete方法实施click操作。

用于复选框选择

模型类

class CustomClass
{
     boolean checked;
     //other fields
}

在您的自定义适配器类

ArrayList<CustomClass> data = new ArrayList<CustomClass>();

getView()方法

checkboxItem.setChecked(data.get(position).getChecked());

并且不要忘记更改checked boolean上的checkbox change listener值。