【发布时间】:2017-07-14 10:00:20
【问题描述】:
当我的应用程序第一次运行时,我需要生成随机 int 以提供设备 ID,然后将其保存到 SharedPrefs,在 TextView 上显示 id,当再次打开时,在 TextView 上显示来自 SharedPeffs 的保存的 ID。
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? -
stackoverflow.com/questions/7496840/… 请转到链接并了解如何获取 sharedpreferences 值..
标签: java android sharedpreferences