当我调用适当的方法时,我的ListView
不会刷新其内容,除非通过单击按钮调用该方法。
以下示例代码是我的测试按钮的工作方式(临时按钮检查我的刷新代码是否有问题):
testBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
exampleRefresh();
}
});
它所谓的方法:
public void exampleRefresh() {
exampleAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, arrayOfItems());
exampleListView.setAdapter(exampleAdapter);
}
这很好用。
但是,如果我在switch语句中为上下文菜单调用exampleRefresh()
,则不会发生任何事情。再次,当我单击测试按钮时,ListView
会立即刷新。这些是调用相同的方法,我不理解这个问题。
我尝试添加nofifyDataSetChange()
,但它不起作用。 ListView
仅在我按下按钮时刷新。
值得注意的是,即使我在调用上下文菜单时调用该方法,它也会刷新。如果没有调用,它就不会执行任何操作,它会出现。
非常感谢任何帮助。
答案 0 :(得分:1)
exampleAdapter = new ArrayAdapter<String>();
exampleAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, arrayOfItems());
exampleListView.setAdapter(exampleAdapter);
这应该强制它清除并重新添加
答案 1 :(得分:0)
尝试从notifyDataSetChange()
调用exampleListView.post()
,如下所示:
exampleListView.post(new Runnable() {
public void run() {
exampleAdapter.notifyDatasetChange();
}
}
答案 2 :(得分:0)
如果要更改列表中的数据,然后要刷新listview,则不要再次调用setadapter方法。只需调用以下方法:
exampleAdapter.notifyDataSetChange();