我有一个简单的 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);
}
}
我想知道如何从我的活动中动态更改这些数据?请告诉我是否有一个简单的方法来做到这一点!我试过但失败了...
UPD:我向 MyListFragment 添加了一个函数 changeContent:
public void changeContent(String[] value) {
adapter.addAll(value);
adapter.notifyDataSetChanged();
}
}
如您所见,适配器是一个全局变量,它在 onActivityCreated 内部进行了初始化,但我的程序崩溃了,因为内部 changeContent in 等于 null!我不明白为什么!