0

我在 SherlockFragment 中有一个 listView,但是当我对适配器进行任何更改时,我无法更新屏幕上的 listView。我试过:adapter.notifyDataSetChanged(),但没有成功。谢谢。

4

2 回答 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);

            }
        }
        }

...来自RefreshonClick:

 @Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.refresh:{
            repopulateListView();
            break;
        }
    }
 }
于 2013-09-03T22:41:59.490 回答