我使用下面的代码初始化和刷新ListView。当加载片段并且第一次调用该函数时,listview将填充没有问题。现在,如果我再次调用相同的函数,listview将消失,只有当我开始滚动,触摸屏幕或旋转设备等时才会重新显示新数据...我还尝试在UI线程上调用该函数没有成功。这个函数是从Spinner.OnItemSelectedListener调用的。
private void setList() {
ArrayList<Message> list = new ArrayList<Message>();
SaxFeedParser sfp;
List<Message> messages = new ArrayList<Message>();
switch (mSpinner.getSelectedItemPosition()) {
case 0:
sfp = new SaxFeedParser(1);
messages = sfp.parse();
sfp = new SaxFeedParser(2);
messages.addAll(sfp.parse());
break;
case 1:
sfp = new SaxFeedParser(1);
messages = sfp.parse();
break;
case 2:
sfp = new SaxFeedParser(2);
messages = sfp.parse();
break;
}
for (int i = 0; i < messages.size(); i++) {
list.add(messages.get(i));
}
mAdapter = new ListAdapter(this,
android.R.layout.simple_list_item_1, list,
(MainActivity) getActivity());
mList.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
mList.invalidateViews();
}
答案 0 :(得分:0)
问题在于我使用的holoeverywhere库中的微调器。它有一个与焦点管理有关的错误,但我无法更精确地分析它。点击屏幕,只需将焦点返回到列表中,视图就会刷新。
我最终没有为那个旋转器使用holoeverywhere。