我需要生成隨機int,以便在第一次運行我的應用程序時提供設備ID,然後將其保存到SharedPreffs,在TextView上顯示id以及何時再次打開show saved id來自TextView上的SharedPreffs。生成隨機int並將其保存到SharedPreferences
public class MainActivity extends AppCompatActivity {
public static final String MyPREFERENCES = "MyPrefs";
public static final String KEY_DEVICE = "id";
SharedPreferences sharedpreferences;
String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
deviceid = (TextView) findViewById(R.id.deviceid);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
if (!sharedpreferences.contains(id)) {
SharedPreferences.Editor editor = sharedpreferences.edit();
id = String.valueOf(new Random().nextInt(900000) + 100000);
editor.putString(KEY_DEVICE, id);
editor.commit();
deviceid.setText(id);
}
deviceid.setText(id);
}
}
上面的代碼生成隨機INT,並顯示在TexView,但我每次隱藏或關閉應用程序時,設備ID發生變化 你能解釋我什麼,我需要做的才達到我的目標。
'contains'第一個參數是關鍵,而不是價值。你的鑰匙是'KEY_DEVICE',你爲什麼用'id'來檢查? –
https://stackoverflow.com/questions/7496840/get-android-shared-preferences-value-in-activity-normal-class請轉到鏈接,瞭解如何獲得sharedpreferences的價值.. – wonderPub