在第一次输入中仅生成一次随机数

时间:2014-01-20 14:22:18

标签: android

我想在第一个条目中生成数字并随时保存和使用。我使用了SharedPreference 当应用程序启动一次(第一次输入)时,代码生成一个数字。但如果不是第一次输入,则Random number没有保存。
如何在第一个条目中生成数字并使用它?

CODE:

int i;  
TextView tv;

public void onCreate(){

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    if(!prefs.getBoolean("firstTime", false)) {
        Random r=new Random();
        int i=r.nextInt(100);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putBoolean("firstTime", true);
        editor.commit();
    }

    tv.setText(i+"");//if "first run" set a number if not set "0"
}

2 个答案:

答案 0 :(得分:3)

在致电SharedPreferences之前,使用SharedPreferences.contains检查prefs.getBoolean中是否已存在密钥。如果没有,那么第一次存储它,如果存在,则从SharedPreferences获取值:

if(prefs.contains("firstTime")){
 // generate random number first time
 // first time store random number 

}else{
  // already present get value from SharedPreferences
}

答案 1 :(得分:1)

public void onCreate(){

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    if(!prefs.getBoolean("firstTime", false)) {
        Random r=new Random();
        i=r.nextInt(100);//<-------- don't re declare I
        SharedPreferences.Editor editor = prefs.edit();
        editor.putBoolean("firstTime", true);
        editor.commit();
    }

    tv.setText(i+"");//if "first run" set a number if not set "0"
}