2013-04-11 71 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