允许选择要使用的活动作为默认值

时间:2015-08-10 11:46:17

标签: android android-activity

我有两个名为One_Activitytwo_activity的活动。

在允许用户进行选择之后,我想让应用程序决定显示哪个活动 - 即使我们退出程序并返回。

例如,如果我们选择它,我们应该始终将two_activity作为默认值。

我该如何实现?

2 个答案:

答案 0 :(得分:0)

您可以设置一个标志并将其保存在SharedPreferences中。当您重新打开应用程序时,访问该标志并根据其值,您可以将所需的活动显示为主要活动。

答案 1 :(得分:0)

要扩展JoelFernandes建议,这是一个正确的解决方案,您的启动活动需要按以下方式检查SharedPreferences

public class MainActivity extends Activity {

    public static final int MODE_LAUNCH_A = 0;
    public static final int MODE_LAUNCH_B = 1;
    public static final String PREF_LAUNCH_MODE = "PREF_LAUNCH_MODE";

    @Override
    protected void onResume() {
        super.onResume();
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        Intent target;
        switch(prefs.getInteger(PREF_LAUNCH_MODE, 0)) {
             case MODE_LAUNCH_A:
                 target = new Intent(this, AlphaActivity,class);
                 break;
             case MODE_LAUNCH_B:
                 target = new Intent(this, BravoActivity,class);
                 break;
        }
        startActivity(target);
    }

}

在您选择要用作主要活动的活动的活动中,您需要保存首选项,如下所示:

private void saveSelection(int selection) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    prefs.edit().setInteger(MainActivity.PREF_LAUNCH_MODE, selection).commit; //(or .apply() instead of commit)
}

// call the above method like
saveSelection(MainActivity.MODE_LAUNCH_A);

在清单中,您还应该在MainActivity上设置NoHistory,以便在按下后退按钮时阻止它变得一团糟。