我想在两种情况下强制使用填充设置页面
1)当用户首次启动应用程序时 2)当数据库版本发生变化时,我希望在程序之前首先填写设置页面
在我的设置类中,我将共享首选项设置为“false”,然后我在下面的代码中检查它
课堂设置//主课程 String flag = sharedPreferences.getString(“CreatedFlag”,“”);
if(flag.equals("true"))
{
// Move to second activity
Intent i =new Intent();
i.setClass(someclass.this,otherPage.class );
startActivity(i);
finish();
}
else
{ // Stay on Settings page }
问题:用户首次启动应用程序时运行正常,显示设置页面并填写页面, 但是当用户第二次运行应用程序时它再次显示设置页面,coz共享首选项仍具有真正的价值, 再次用户运行应用程序第3次共享首选项的更新值为false,并显示其他页面
我想要的是设置页面只显示一次,如果它没有设置定义,其他明智的是它转到主页
需要帮助,
答案 0 :(得分:0)
我不在这里,你实际上是在保存首选项,我假设它在otherPage活动中?
如果没有将其添加到第一个活动
SharedPreferences prefs = this.getsharedPreferences("myApp",0);
//check for the Created value in the shared preferences
String createdFlag = prefs.getString("Created","false"); // set default value == false
if(createdFlag == "false){
goToSettingsPage(); // to the settings page we go...
}
然后在您的设置页面上:
SharedPreferences prefs = this.getSharedPreferences("myApp",0);
SharedPreferences.Editor ed = prefs.edit(); // create the editor
ed.putString("Created","true"); // put the value to the prefs
ed.commit(); // commit the changes
第一次运行后,共享的prefs文件将被保留,然后不应该在第二次运行时转到设置页面。