Amir
Amir

Reputation: 391

Generate random number just once in first entry

I want to generate number in first entry and save and use for anytime.I used SharedPreference.
When application started for once(first entry), the code generated a number.but if not first entry, Random number didn't save.
How to generate number in first entry and use it?

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"
}

Upvotes: 0

Views: 171

Answers (2)

vipul mittal
vipul mittal

Reputation: 17401

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"
}

Upvotes: 1

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132982

Use SharedPreferences.contains to check if key is already present in SharedPreferences before calling prefs.getBoolean. if not then store it first time and if present then get value from SharedPreferences :

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

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

Upvotes: 3

Related Questions