我有一个简单的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!我不明白为什么!
答案 0 :(得分:1)
您可以编写一个更改值变量的函数,然后在填写新数据后再调用
adapter.notifyDataSetChanged();
使用新数据填充您的列表。