0

Jake Wharton の ViewPagerIndicator ライブラリを使用しています。以下に示す FragmentActivity では、画面を回転すると onCreate メソッドが呼び出されますが、アクティビティは空白のままで、インジケーター (「タブ 1」と「タブ 2」) のみが表示されます。

public class MainActivity extends FragmentActivity {

    private static final String[] CONTENT = new String[] { "Tab 1", "Tab 2", };

    ProgressDialog progress;

    FragmentPagerAdapter adapter;
    ViewPager pager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        progress = ProgressDialog.show(this, "Loading", "Loading data...");

        new getData().execute();

    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {

        super.onSaveInstanceState(outState);

    }

    class FragPagerAdapter extends FragmentPagerAdapter {
        public FragPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            if(position == 0){
                return FragmentTabOne.newInstance();
            }else if(position == 1){
                return FragmentTabTwo.newInstance();
            }
            return null;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return CONTENT[position % CONTENT.length].toUpperCase();
        }

        @Override
        public int getCount() {
            return CONTENT.length;
        }

    }

    private class getData extends AsyncTask<Void, Void, Boolean> {

        @Override
        protected Boolean doInBackground(Void... params) {

            //getting data from server

            return true;
        }

        protected void onPostExecute(final Boolean success) {

                setContentView(R.layout.main_activity); //indicator + viewpager

                adapter = new FragPagerAdapter(getSupportFragmentManager());

                pager = (ViewPager)findViewById(R.id.pager);

                pager.setAdapter(adapter);

                TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
                indicator.setViewPager(pager);

                progress.dismiss();

            }
        }

    }
}

アクティビティとそのフラグメントを正しく表示するには、どうすればよいですか (おそらく onSaveInstanceState メソッドで)。ありがとう

4

1 に答える 1