フラグメントとViewPagerを備えたAndroid互換性ライブラリ(android.support.v4)は初めてです。EclipseにJavaDocsがなくてもたくさんの楽しみがあります。
私はViewPagerとフラグメントに関するこのチュートリアルに従っていました
foreachループでカスタムオブジェクトを反復処理しながら、コードの一部を再利用してフラグメントをViewPagerに追加しました
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
for (CustomObjectClass object : getAllBalances()) {
Fragment fragment = Fragment.instantiate(this,
SomeCustomFragmentClass.class.getName());
// Line below is where stacktrace points to with NullPointer
ListView lv = ((ListView) fragment.getActivity().findViewById(
R.id.someListView));
// proceed setting a custom adapter to lv (ListView) then adding to list of fragments
fragments.add(fragment);
}
this.mPagerAdapter = new PagerAdapter(
super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
}
他の回答と「google'n」を一日中読んだ後、私はそのビューの1つを参照するまでにフラグメントが完全に初期化されていないことに関係している可能性があるという結論に達しました。
または、私はさらに遠くにいて、私が何をしているのか見当がつかない。
フラグメントクラス内にメソッドを配置してアダプタを設定しようとしましたが、動作するメソッドでメソッドを呼び出すとonViewCreated()
、コードの現在のレイアウトでは少し実用的ではなくなります。
私がしていることが正しくないか非効率的である場合、私はどんな選択肢も受け入れます
私の目標は、データを含むCustomObjectを反復処理して、各Fragments ListViewにデータを入力し、各FragmentをViewPagerに配置することです。