查找在android的listView中单击的项目
我的自定义列表视图中有大约150个项目。我正在努力实现以下目标: list.setOnItemClickListener新建OnItemClickListener { 1.我得到项目的位置 2.从ArrayList获取数据 3.将数据添加到数据库中查找在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
// 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个项目。该项目被自动选中。我无法解决该问题,因此正在寻找不同的解决方案。我确实有相同的问题,我想我解决了使用自定义模型类,并选中了其他布尔字段,用于检查/取消选中你能帮我做一个关于这个的示例项目吗?