画面に 1 つの単純なデータ配列を表示する単純な 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: 関数 changeContent を MyListFragment に追加しました:
public void changeContent(String[] value) {
adapter.addAll(value);
adapter.notifyDataSetChanged();
}
}
ご覧のとおり、アダプターはグローバル変数であり、onActivityCreated 内で初期化されますが、私のプログラムはクラッシュします。理由がわからない!