显示偏好设置屏幕第一次运行应用程序和相关问题

Ama*_*nni 7 android preferences

我有一个有2个活动的应用程序,首选项和主要活动,我需要首选项屏幕来显示应用程序运行,以便用户可以进行一些配置.我已经检查了这个主题的答案,它们似乎不是很清楚,但我收集它与检查共享首选项文件是否为空有关.

有人可以给我一个代码来解决这个问题以及我将代码放在哪个活动上?此外,我仍然处于开发阶段,所以我已经有我的首选项设置如何撤消这个?

提前致谢

Jos*_*arl 14

1)当您的主要活动开始时,检查布尔值首选项,默认设置为false.如果它是假的,启动你的偏好活动,如果它是真的那么你知道你已经保存它是真的!

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
boolean haveWeShownPreferences = prefs.getBoolean("HaveShownPrefs", false);

if (!haveWeShownPreferences) {
    // launch the preferences activity
} else {
   // we have already shown the preferences activity before
}
Run Code Online (Sandbox Code Playgroud)

2)在您的首选项活动中,使用值truein 保存相同的布尔首选项onCreate

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putBoolean("HaveShownPrefs", true);
ed.commit();
Run Code Online (Sandbox Code Playgroud)

  • 无耻地复制到我的项目中.Upvoted.谢谢! (2认同)

Sor*_*ean 2

我假设您正在运行模拟器,当您启动模拟器时,您可以选择在启动模拟器时“擦除保存的数据”,这样就像您刚刚启动应用程序一样启动它。或者,您可以进入设置 -> 应用程序 -> 您的应用程序 -> 擦除数据。

关于您的编码解决方案,我目前没有任何方便的东西,但您应该做的是启动主要活动,运行过程/函数来检查共享首选项文件是否为空,以及是否启动首选项活动,否则运行您的主要活动。或者,您可以查看正在查找的用户输入值(例如 UserID)是否为空,而不是检查文件是否为空。如果该值不为空,则意味着应用程序可以继续。