ListFragment内容更改

时间:2013-04-11 19:31:33

标签: android android-fragments

我有一个简单的MyListFragment片段,它在屏幕上显示一个简单的数据数组。

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:我在MyListFragment中添加了一个函数changeContent:

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

如您所见,适配器是一个全局变量,它在onActivityCreated中初始化,但我的程序崩溃,因为changeContent in equals null!我不明白为什么!

1 个答案:

答案 0 :(得分:1)

您可以编写一个更改值变量的函数,然后在填写新数据后再调用

adapter.notifyDataSetChanged();

使用新数据填充您的列表。