android共享首选项问题

时间:2012-05-20 05:57:10

标签: android

我想在两种情况下强制使用填充设置页面

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,并显示其他页面

我想要的是设置页面只显示一次,如果它没有设置定义,其他明智的是它转到主页

需要帮助,

1 个答案:

答案 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文件将被保留,然后不应该在第二次运行时转到设置页面。