目前我使用ArrayAdapter
创建了许多ListView项目行。在每个行中都有一个按钮来删除"任务"。我可以从数据库中删除任务,但我不知道如何查找视图项并实际删除它,以便用户看到它被删除。任何帮助?以下是我的getView
。 (感谢您的任何建议!)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final DataManager dm = new DataManager(getContext());
Task task = objects.get(position);
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.item_task, null);
// Get Text Views
TextView tv_title = (TextView) view.findViewById(R.id.task_title);
TextView tv_item = (TextView) view.findViewById(R.id.task_item);
ImageView iv_delete = (ImageView) view.findViewById(R.id.task_delete_image);
tv_title.setText(task.getTitle());
tv_item.setText(task.getItem());
iv_delete.setTag(task.getId());
iv_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag_del = (String) v.getTag();
dm.deleteItem(tag_del);
}
});
return view;
}
答案 0 :(得分:1)
您必须从数组中移除项目或(您用于填充活动中列表的任何集合),然后在适配器上调用notifyDataSetChanged();
以更新列表
e.g。
如果您使用ArrayList<String> list
来定义
final ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
致电
list.remove(3);
adapter.notifyDataSetChanged();`
ListView
的第4行将被删除
答案 1 :(得分:0)
修复是,在onclick所在的适配器中,在onclick中添加以下内容:
objects.remove(position);
notifyDataSetChanged();
答案 2 :(得分:0)
iv_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
remove(task);
notifyDataSetChanged();
}
});
试试这个我在我的项目中这样做