フラグメントで壁にぶつかり、フラグメント内のリストビューのアダプターが変更されたときにビューの更新をトリガーしています。今私は持っています:
- FragmentManager を保持するメイン アクティビティ
- アクティビティは FragmentPagerAdapter.getItem メソッドを通じて位置に基づいてフラグメントを作成します
- 後続のアクティビティまたはボタンを押すと、フラグメントの 1 つの背後にあるデータが変更されます
- アクティビティは、カスタム Fragment クラスの refresh メソッドを呼び出して、データの更新をトリガーします
- refresh メソッドは、フラグメント内の ListView オブジェクトを取得します
- ここで Null 例外が発生します
更新方法は次のとおりです。
public void refresh() {
groups = new Select()
.from(Group.class)
.execute();
listView = (ListView)getActivity().findViewById(R.id.overview_container);
// Never get here
groupAdapter.clear();
groupAdapter.setItems(groups);
listView.invalidateViews();
}
セットアップは
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_overview, container, false);
groups = new Select()
.from(Group.class)
.execute();
listView = (ListView)view.findViewById(R.id.overview_container);
listView.setAdapter(new GroupAdapter(view.getContext(), R.layout.time_view, groups));
return view;
}
ここで私が見逃している基本的なものはありますか? この問題を回避できるリスナーのような簡単なパターンはありますか? ビューを保存しても、null以外のものを返すようには見えません。