我有两个名为One_Activity
和two_activity
的活动。
在允许用户进行选择之后,我想让应用程序决定显示哪个活动 - 即使我们退出程序并返回。
例如,如果我们选择它,我们应该始终将two_activity
作为默认值。
我该如何实现?
答案 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,以便在按下后退按钮时阻止它变得一团糟。