簡體   English   中英

如何刷新SherlockFragment中的listView?

[英]How refresh a listView inside SherlockFragment?

我在SherlockFragment內有一個listView,但是對適配器進行任何更改時,我都無法在屏幕上更新listView。 我嘗試了:adapter.notifyDataSetChanged(),但是沒有成功。 謝謝。

您應該在調用notifyDatasetChanged();之前更新傳遞給適配器的基礎數據集。

例如:

對於ListActivity中的ArrayAdapter(“ arraylist”是您用來備份ArrayAdapter的ArrayList)

arraylist.add(data);
arrayadapter = this.getListAdapter();
arrayadapter.notifyDatasetChanged();

就個人而言,每次用戶喜歡按刷新按鈕時,我都會重新填充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;
        }
    }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM