2012-04-12 39 views
0

我正在为Splash屏幕上的Android创建应用程序我希望它在首次启动应用程序时显示AlertDialog。这是我的代码:我无法使SharedPreferences工作

SharedPreferences savedInfo = getSharedPreferences("SavedInfo", MODE_PRIVATE); 
    SharedPreferences.Editor infoEditor = savedInfo.edit(); 

     boolean firstLaunch = savedInfo.getBoolean("firstLaunch", true); 

     final AlertDialog importDialog = new AlertDialog.Builder(SplashActivity.this).create(); 

     if (firstLaunch == true) { 
      importDialog.setTitle(R.string.splash_import_title); 
      importDialog.setMessage(getString(R.string.splash_import_text)); 
      importDialog.setIcon(android.R.drawable.ic_dialog_alert); 
      importDialog.setButton(getString(R.string.splash_import_yes), new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        //ALL FILE STUFF HERE 
        importDialog.dismiss(); 
        startTimer(); 
       } 
      }); 
      importDialog.setButton2(getString(R.string.splash_import_no), new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        importDialog.dismiss(); 
         startTimer(); 
       } 
      }); 
      importDialog.show(); 
      infoEditor.putBoolean("firstLaunch", false); 
     } else { 
      startTimer(); 
     } 

问题是,它每次都向我显示对话框。即使我已经启动它。感谢您的时间和帮助,zeokila。

回答

1

你必须告诉你的编辑器来保存。请添加infoEditor.commit();(同步)或infoEditor.apply();(异步)以保持您的价值。

1

infoEditor.commit()似乎在infoEditor.putBoolean("firstLaunch", false)之后丢失,所以新的值永远不会被保存。