我的自定义列表视图中有大约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
}
}
});
但如何实现从数据库中删除?我无法区分是否在数据库之前单击了该项目,或者是否从数据库中删除该项目。
有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:0)
在列表视图中,使用
setOnItemClickListener
你可以做你想做的事。
答案 1 :(得分:0)
使用context menu
删除database
在long press
显示delete/edit
选项,并根据需要执行进一步操作。
检查here上下文菜单示例
修改强>
您还可以将button/image
放入listview
至delete
项目,然后使用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
值。