【发布时间】:2018-02-13 08:24:13
【问题描述】:
这是我的代码-
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, final long id) {
builder1 = new AlertDialog.Builder(context);
alert1 = builder1.create();
layoutInflater1 = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
layout1 = layoutInflater1.inflate(R.layout.alert_one, null);
alert1.setView(layout1);
buttonAlert_oneDelete = (Button) layout1.findViewById(R.id.buttonAlert_oneDelete);
buttonAlert_oneUpdate = (Button) layout1.findViewById(R.id.buttonAlert_oneUpdate);
buttonAlert_oneCancel = (Button) layout1.findViewById(R.id.buttonAlert_oneCancel);
buttonAlert_oneDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
funDelete(id);
simpleCursorAdapter.notifyDataSetChanged();
alert1.cancel();
}
});
buttonAlert_oneCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alert1.cancel();
}
});
alert1.show();
}
});
funDelete方法
private void funDelete(long id) {
db = abcDbHelper.getReadableDatabase();
db.delete(AbcDbContract.TableWords.TABLE_NAME,AbcDbContract.TableWords.COLUMN_NAME_ID + " = " + String.valueOf(id), null);
}
嗨!从数据库中删除行后,方法 notifyDataSetChanged() 不会立即 ListView。这是怎么做的?非常感谢。
【问题讨论】:
-
你能再解释一下你的问题吗..
-
显示你的函数删除和适配器的初始化语句..
-
我猜这是因为从数据库中删除是一个异步函数。如果在调用
funDelete之后再调用notifyDataSetChanged,那么此时异步函数可能还没有完成。在funDelete内调用notifyDataSetChanged,您可以确保删除操作已完成。 -
发布您的
funDelete(id)方法代码。你从哪里得到id? -
当我在此对话框窗口中按下“DELETE”按钮时,ListView 现在必须更改
标签: java android listview dialog synchronization