项目被删除后 ListView 不刷新
ListView not refreshed after item get deleted
ListView listViewUpdate;
ListAdapter adapter;
listViewUpdate.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {
HashMap<String, String> clickedItem = EditDetails.get(po);
iD=clickedItem.get(Configs.TAG_ID);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Delete");
builder.setMessage("Are you sure you want to delete?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int ii) {
delete(iD);
listViewUpdate.setAdapter(adapter);
((BaseAdapter) adapter).notifyDataSetChanged();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int ii) {
dialog.dismiss();
}
}
);
builder.show();
return true;
}
});
return edit_details;
}
项目已删除,但 listView 未刷新。 customBaseAdapter是必须的吗?数据是从 MySQL 检索的,我从 here 获得教程,因为他只使用列表适配器。谢谢
从数组中删除当前位置后,您可能需要这样做来刷新列表视图
listDO.clear();
listDO.addAll(getyourList());
if (rowAdapter == null) {
rowAdapter = new RowAdapter(listDO);
listView.setAdapter(rowAdapter);
} else {
rowAdapter.notifyDataSetChanged();
}
ListView listViewUpdate;
ListAdapter adapter;
listViewUpdate.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {
HashMap<String, String> clickedItem = EditDetails.get(po);
iD=clickedItem.get(Configs.TAG_ID);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Delete");
builder.setMessage("Are you sure you want to delete?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int ii) {
delete(iD);
listViewUpdate.setAdapter(adapter);
((BaseAdapter) adapter).notifyDataSetChanged();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int ii) {
dialog.dismiss();
}
}
);
builder.show();
return true;
}
});
return edit_details;
}
项目已删除,但 listView 未刷新。 customBaseAdapter是必须的吗?数据是从 MySQL 检索的,我从 here 获得教程,因为他只使用列表适配器。谢谢
从数组中删除当前位置后,您可能需要这样做来刷新列表视图
listDO.clear();
listDO.addAll(getyourList());
if (rowAdapter == null) {
rowAdapter = new RowAdapter(listDO);
listView.setAdapter(rowAdapter);
} else {
rowAdapter.notifyDataSetChanged();
}