Fragmentを拡張する4つのクラスを含むViewPagerを備えたアプリがあります。私はインターネット上のチュートリアルに従ってきましたが、奇妙な問題が発生しました。これはフラグメント アダプターのコンストラクターです。
public class FragmentAdapter extends FragmentPagerAdapter {
private final int PAGE_COUNT = 4;
TableFragment table_fragment;
MixFragment mix_fragment;
HumFragment hum_fragment;
TempFragment temp_fragment;
public FragmentAdapter(FragmentManager fm) {
super(fm);
Log.i("AAAAAA", "FragmentAdapter constructor");
table_fragment = new TableFragment();
mix_fragment = new MixFragment();
hum_fragment = new HumFragment();
temp_fragment = new TempFragment();
}
これは、ViewPager を構成するフラグメントの 1 つです (他のものも同様です)。
public class TableFragment extends Fragment {
MainActivity main;
ListView list_view;
ArrayAdapter<String> adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tab_layout, container, false);
list_view = (ListView) v.findViewById(R.id.list_view);
adapter = new ArrayAdapter<String>(v.getContext(),
android.R.layout.simple_list_item_1);
list_view.setAdapter(adapter);
return v;
}
ここで、メインアクティビティで新しい FragmentAdapter オブジェクトを作成した後、フラグメントの onCreateView() メソッドがすぐに呼び出されず、アプリがクラッシュすることに気付きました (各フラグメントにはフラグメントのコンテンツを変更するメソッドがいくつかあるため)。これを回避するにはどうすればよいですか?フラグメントがすぐに作成される必要があるため、そのフラグメントに対してアクションを実行できます