我有一个包含2个活动的应用程序,首选项和主要活动,我需要首次显示应用程序运行的首选项屏幕,以便用户可以进行一些配置。我已经检查了这个主题的答案,它们似乎不太清楚,但我收集它与检查共享首选项文件是否为空。
有人可以给我一个代码来解决这个问题以及我将代码放在哪个活动上? 此外,我仍然处于开发阶段,所以我已经设置了我的偏好设置如何撤消这个?
先谢谢
答案 0 :(得分: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
}
2)在您的首选项活动中,在true
onCreate
SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putBoolean("HaveShownPrefs", true);
ed.commit();
答案 1 :(得分:2)
我假设您正在运行模拟器,当您启动模拟器时,您可以选择“擦除已保存的数据”,这样就可以像启动应用程序一样启动它。或者,您可以进入设置 - >应用程序 - >你的应用 - >擦除数据。
关于你的编码解决方案,我目前没有任何方便,但你应该做的是启动你的主要活动,运行一个过程/函数来检查共享首选项文件是否为空,如果是启动首选项活动,否则运行主要活动。或者,您可以查看要查找用户输入的值(例如UserID)是否为空,而不是检查文件是否为空。如果该值不为null,则意味着应用程序可以继续。
答案 2 :(得分:1)
我已经在我的主要活动
中用这段代码对此进行了整理if (prefs.getString("edittextpref", null) == null)
{
startActivity(new Intent(this, Preferences.class));
return;
}
}
它只是检查你的一个值是否为空,但你需要将它放在onCreate的底部,否则当你回到主页时它将是空白的。
答案 3 :(得分:0)
我正在做这样的事情。它的作用对我而言。
String path = "//data//data//"+this.getPackageName()+"//shared_prefs//feedbackpref.xml";
boolean exists = (new File(path)).exists();
if (exists) {
introWindowNavigate=false;
}