我有三个Fragments,我在主活动b1上有两个按钮,称为b下一个按钮,b2称为上一个按钮,当应用程序启动时向我显示空白片段,单击b1时向我显示XFragment称为页面1,单击b1时向我显示XFragment YFragment称为第2页,我想在重新打开应用程序时显示最后一个Fragment已打开,我知道应该使用shareprefrences,但是我不知道如何将其添加到此代码中


public class MainActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void b1(View view) {

        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        XFragment fragment = new XFragment();
        ft.replace(R.id.mainfragment,fragment);
        ft.commit();
    }

    public void b2(View view) {

        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        YFragment fragment = new YFragment();
        ft.replace(R.id.mainfragment,fragment);
        ft.commit();
    }
}

最佳答案

以下是使用SharedPreference所需的代码。

public class MainActivity extends AppCompatActivity  {

        SharedPreference pref;
        Editor editor;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            pref = getApplicationContext().getSharedPreferences("MyPref", 0);
            editor = pref.edit();
            int fragment_number=pref.getInt("fragment_number", -1); // getting Integer
            if(int==1){
            //start first fragment
            }
           if(int==2){
            //start second fragment
           }
        }

        public void b1(View view) {
            editor.putInt("fragment_number", 1);
            editor.apply();
            FragmentManager fm = getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            XFragment fragment = new XFragment();
            ft.replace(R.id.mainfragment,fragment);
            ft.commit();
        }

        public void b2(View view) {

            editor.putInt("fragment_number", 2);
            editor.apply();
            FragmentManager fm = getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            YFragment fragment = new YFragment();
            ft.replace(R.id.mainfragment,fragment);
            ft.commit();
        }
    }

10-06 05:37
查看更多