gpt4 book ai didi

android - 长按删除项目后,Listview 不会自行刷新?

转载 作者:行者123 更新时间:2023-11-29 01:07:29 26 4
gpt4 key购买 nike

我使用自定义 SimpleCursorAdapter 填充 ListView 。在 listview 的 onItemClickListener 上,它打开另一个 Activity ,它正在工作。现在 onitemLongClickListener 我想显示一个警报对话框是,没有选择删除文件。选择是后,我得到光标并获取项目的相关数据库条目并删除该条目并从应用程序数据目录中删除文件但 ListView 不会刷新自身,直到我关闭应用程序并重新打开它。在 longclick 监听器中删除文件和数据库条目后,我尝试使用 adapter.changeCursor(cursor) 但没有成功。我需要做什么才能让它在删除文件和数据库条目后立即自行刷新?

主要 Activity :

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, final int position, long l) {
cursor = (Cursor) lv.getAdapter().getItem(position);
filepath = cursor.getString(cursor.getColumnIndex("filename"));
final File file = new File(filepath);
builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Delete File");
builder.setMessage("Are you sure you want to delete this file?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
boolean isDeleted = file.delete();
int count = db.delteSingleEntry(filepath);
if (isDeleted && count != 0){
Toast.makeText(MainActivity.this, "File deleted and Database entry removed", Toast.LENGTH_SHORT).show();

}else {
Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
});

AlertDialog alert = builder.create();
alert.show();
adapter.changeCursor(cursor);
return false;
}

});

}

最佳答案

您需要调用:

yourAdapter.notifyDataSetChanged()

但为了获得更好的性能,请尝试使用 Recyclerview 实例

RecyclerView

关于android - 长按删除项目后,Listview 不会自行刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com