Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找在android的listView中单击的项目_Android_Android Listview - Fatal编程技术网

查找在android的listView中单击的项目

查找在android的listView中单击的项目,android,android-listview,Android,Android Listview,我的自定义列表视图中有大约150个项目。我正在努力实现以下目标: list.setOnItemClickListener新建OnItemClickListener { 1.我得到项目的位置 2.从ArrayList获取数据 3.将数据添加到数据库中 // Click event for single list row list.setOnItemClickListener(new OnItemClickListener() { @Override

我的自定义列表视图中有大约150个项目。我正在努力实现以下目标:

list.setOnItemClickListener新建OnItemClickListener {

1.我得到项目的位置

2.从ArrayList获取数据

3.将数据添加到数据库中

    // 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
            }
        }
    }); 
这部分工作正常

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

原因是我不确定是否单击了该项目?我遇到这个问题主要是因为我想在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
            }
        }
    }); 
但如何实现从数据库中删除?我无法区分在单击该项之前是否要从数据库中删除该项

    // 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
            }
        }
    }); 
有人能帮我解决这个问题吗


谢谢!

在列表视图中,使用

塞托尼麦克利克监听器

接下来,您可以执行所需操作。

使用上下文菜单从数据库中删除项目

长按显示删除/编辑选项,并根据需要执行进一步的操作

检查上下文菜单示例

编辑

您还可以在listview中放置按钮/图像以删除项目,然后在click方法中执行删除操作

用于复选框选择

模范班

class CustomClass
{
     boolean checked;
     //other fields
}
在自定义适配器类中

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

别忘了更改复选框change listener上的选中布尔值。

我已经设置了setonimclick,如果我选择了项目,一切正常,但如果我想从数据库中删除数据,我不知道如何取消选择项目?您的问题不够清楚,先生,也许您需要看看这个问题请阅读我的任务先生,您会理解的。我在自定义列表视图中显示了项目列表。当我选择它时,我想向数据库添加相应的数据。此部分工作正常,但如果我想取消选择该项目,请从数据库中删除数据。如何在同一个SetOnItemClickListener上实现此部分?您的ArrayList包含字符串或自定义对象??Arraylist包含Arraylist profileList;。我不想实现长按部分。嘿!这是区分添加和删除的唯一方法吗?我确实尝试过,但我遇到了一个奇怪的问题:我在自定义ListView中添加了复选框。数据显示良好,但奇怪的问题是,当我选中列表中的第一行并向下滚动时,我可以看到另一个项目被选中。这是我列表中的第7个项目。该项目被自动选中。我无法解决该问题,因此正在寻找不同的解决方案。我确实有相同的问题,我想我解决了使用自定义模型类,并选中了其他布尔字段,用于检查/取消选中你能帮我做一个关于这个的示例项目吗?