我在 SherlockFragment 中有一个 listView,但是当我对适配器进行任何更改时,我无法更新屏幕上的 listView。我试过:adapter.notifyDataSetChanged(),但没有成功。谢谢。
问问题
635 次
2 回答
1
您应该在调用 notifyDatasetChanged(); 之前更新传递给适配器的底层数据集;
例如:
对于 ListActivity 中的 ArrayAdapter(“arraylist”是您用来支持 ArrayAdapter 的 ArrayList)
arraylist.add(data);
arrayadapter = this.getListAdapter();
arrayadapter.notifyDatasetChanged();
于 2013-09-04T02:39:54.997 回答
0
就个人而言,每次用户喜欢按下刷新按钮时,我都会重新填充 listView 进行初始化Cursor
。
像这样:调用这个函数......
public void repopulateListView(){
cursor = dbHelper.fetchAll();
columns = new String[] {
DBAdapter.KEY_NAME,
DBAdapter.KEY_DATE,
DBAdapter.KEY_VOTE,
DBAdapter.KEY_CREDIT
};
to = new int[] {
R.id.one,
R.id.two,
R.id.three,
R.id.four
};
dataAdapter = new SimpleCursorAdapter(
getActivity(), R.layout.YOUR_ID,
cursor,
columns,
to,
0)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
final View row = super.getView(position, convertView, parent);
}
}
}
...来自Refresh
onClick:
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.refresh:{
repopulateListView();
break;
}
}
}
于 2013-09-03T22:41:59.490 回答