2013-04-11 53 views
0

我有一個簡單的MyListFragment片段,它在屏幕上顯示一個簡單的數據數組。ListFragment content changing

public class MyListFragment extends ListFragment { 
     private ArrayAdapter<String> adapter; 
     public ArrayAdapter<String> getAdapter() { 
      return adapter; 
     } 
     public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 
      String[] values = new String[] {"data", "data", "data"}; 
      adapter = new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, values); 
      setListAdapter(adapter);   
      } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
     return super.onCreateView(inflater, container, savedInstanceState); 
    } 
} 

我想知道如何從我的Activity中動態地更改這些數據?請告訴我,如果有一個簡單的方法如何做到這一點!我做過嘗試,但都失敗了......

UPD:我添加了一個功能changeContent到MyListFragment:

public void changeContent(String[] value) { 
     adapter.addAll(value); 
     adapter.notifyDataSetChanged();  
    } 
} 

正如你看到的,適配器是一個全局變量,它的內部onActivityCreated初始化,但我的程序崩潰因爲裏面的changeContent在等於null!我無法理解爲什麼!

回答

1

你可以寫,改變你的價值觀變量的函數,然後,一旦你與你的新數據填充它只是調用

adapter.notifyDataSetChanged(); 

用新的數據來填補你的列表中。

+0

請您詳細說一下嗎? – user1933770 2013-04-12 08:00:48