0

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

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 }

问题:当用户第一次启动应用程序时它运行良好,它显示设置页面并填充页面,但是当用户第二次运行应用程序时它再次显示设置页面,因为共享首选项仍然具有真实值,然后再次用户运行应用程序第三次共享首选项更新值为假,并显示其他页面

我想要的是如果没有设置定义,设置页面只显示一次,否则它会进入主页

需要帮忙 ,

4

1 回答 1

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 文件将被持久化,然后在第二次运行时不应转到设置页面。

于 2012-05-20T06:10:57.493 回答