【发布时间】:2015-09-10 08:53:16
【问题描述】:
我有两个列表视图,例如 listview_1 和 listview_2。我想在刷新listview_1 时刷新listview_2。
我的代码是这样的:
public void updateTwoListView() {
listview_1.getAdapter().notifyDataSetChanged();
listview_2.getAdapter().notifyDataSetChanged();
}
但它不起作用,listview_1 可以刷新但listview_2 不能。
那一刻我发现listview_1 是焦点。
然后我尝试在运行该方法之前将焦点设置到其他视图,它们都没有刷新。仅当列表视图具有焦点时,它才喜欢刷新列表视图。
而且我发现当我调用方法刷新时,listview_2没有,然后我将焦点设置为listview_2,刷新了自己!
所以,我只想问:
如何在Android中同时刷新两个listview?
还有什么代码:
//init two listview there
public void init() {
listview_1 = (ListView)findViewById(R.id.listView1);
listview_2 = (ListView)findViewById(R.id.listView2);
adapter1 = new MyListViewAdapter(mContext);
adapter2 = new MyListViewAdapter(mContext); //I have tried use different adapter, that also didn't work.
listview_1.setAdapter(adapter1);
listView_2.setAdapter(adapter2);
}
upside sn-p的真正代码是:
public void updateTwoListView(int currentPosition) {
adapter1.updateCurPos(currentPosition);
adapter2.updateCurPos(currentPosition);
}
在 MyListViewAdapter.java 中:
public void updateCurPos(int currentPosition) {
mCurrentPos = currentPosition;
notifyDataSetChanged();
}
我会在外面调用listViewManager.updateTwoListView(1)之类的方法来刷新。
感谢任何回复。
【问题讨论】:
-
第二个变量也是
listview_1。你的意思是listview_2? -
@Fabi775 是的,你说得对,我忘记改了。
-
是的,没问题。您问题的底部是一个编辑按钮。
-
@Fabi755 感谢您的友好回复。 ^_^
-
@Fabi755 是的,它成功了!我在
updateCurPos ()中更改了data(listview_2的绑定),然后notifyDataSetChanged()工作了!我无法解释为什么listview_1可以使用相同的代码刷新而listview_2不能。不管我多么高兴,我终于解决了这个问题。^_^