实际上在我的列表活动中,当用户点击任何项目时,会打开一个对话框,其中包含两个删除和取消选项。当用户选择删除按钮时,对话框将删除数据库中的删除值。旧列表活动进入前景与旧值。虽然它被删除它显示在listview.Is有一种方式来显示刷新列表。如果是,那么如何?
答案 0 :(得分:2)
在调用适配器的notifyDataSetChanged()以刷新列表之前,您还需要从适配器中删除已删除的项目
答案 1 :(得分:1)
请尝试以下代码,
private final Handler handler = new Handler();
创建一个名为doTheAutoRefresh()的函数:
private void doTheAutoRefresh() {
handler.postDelayed(new Runnable() {
doRefreshingStuff(); // this is where you put your refresh code
doTheAutoRefresh();
}, 1000);
}
在onCreate中调用此函数。
注意:这是基本方法。考虑在onPause被调用之后停止它并在onResume之后恢复它。查看处理程序类以了解如何删除。
答案 2 :(得分:1)
试试这个, 实现对话框dismiss listener并检查用户是否单击了“delete”按钮,如果是,则执行刷新
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
})
再次设置apdater刷新列表视图....
答案 3 :(得分:1)
如果您正在使用数组列表,那么您必须明确知道项目位置并使用该位置,您可以从列表中删除项目。然后调用
yourlist.remove(position);
adapter.notifyDataSetChanged();
运行你的程序来观看魔术。
答案 4 :(得分:0)
关闭对话呼叫时
yourAdapter.notifyDataSetChanged()
列表适配器上的。
答案 5 :(得分:0)
使用list.clear()清除列表;
并像这样设置适配器
adapter = new Adapter(this);
enter code here
listView.setAdapter(适配器);
答案 6 :(得分:0)
您可以覆盖活动方法onWindowFocusChanged(boolean hasFocus)
并跟踪活动的状态。
通常情况下,如果您的活动上方显示了一些警告对话框,则该活动不会获得onPause()
和onResume()
个事件。但它失去了对所显示的警报对话框的关注,并在它解散时获得它。
如果onWindowFocusChanged()
为hasFocus
,您可以在true
内刷新数据。