Java 在共享首选项Android中保存用户ID
我只是问了一个问题,但我想换一种方式。当用户编辑他/她的个人资料并点击保存按钮时,我希望能够使用UUID生成一个随机数。如果用户再次返回并编辑其配置文件,我希望此ID保持不变(如果他们再次按“保存”,我希望保留他们第一次按“保存”时生成的ID)。我有下面的代码用于保存其他数据,但我不确定如何包含一个检查,以确定是否已经生成了ID。这是我的密码:Java 在共享首选项Android中保存用户ID,java,android,unique-id,Java,Android,Unique Id,我只是问了一个问题,但我想换一种方式。当用户编辑他/她的个人资料并点击保存按钮时,我希望能够使用UUID生成一个随机数。如果用户再次返回并编辑其配置文件,我希望此ID保持不变(如果他们再次按“保存”,我希望保留他们第一次按“保存”时生成的ID)。我有下面的代码用于保存其他数据,但我不确定如何包含一个检查,以确定是否已经生成了ID。这是我的密码: public void save(View view) { String firstnameText = firstname.getText()
public void save(View view) {
String firstnameText = firstname.getText().toString();
String lastnameText = lastname.getText().toString();
String phoneText = phone.getText().toString();
String cityText = city.getText().toString();
String zipText = zip.getText().toString();
String uuid = UUID.randomUUID().toString(); //Generate random ID but I
think this would generate a
new ID each time the data is
saved
if (firstnameText != null)
PreferenceConnector.writeString(this, PreferenceConnector.FIRSTNAME,
firstnameText);
if (lastnameText != null)
PreferenceConnector.writeString(this, PreferenceConnector.LASTNAME,
lastnameText);
if (phoneText != null && !phoneText.equals(""))
PreferenceConnector.writeLong(this, PreferenceConnector.PHONE,
Long.parseLong(phoneText));
if (cityText != null)
PreferenceConnector.writeString(this, PreferenceConnector.CITY,
cityText);
if (zipText != null && !zipText.equals(""))
PreferenceConnector.writeInteger(this, PreferenceConnector.ZIP,
Integer.parseInt(zipText));
if (uuid != null) //what next?
startActivity(new Intent(PreferencesActivity.this, Main.class));
}
您可以将布尔SharedReference初始设置为false,然后在第一次生成ID时设置为true,然后在生成和ID之前检查此布尔值,并且仅在基本上为false时生成
//get idHasBeenGenerated from prefs with default false
if(!idHasBeenGenerated)
{
//generate ID
//change value of idHasBeenGenerated to true and save in shared prefs.
}
编辑:
这取决于您如何实现
首选连接器
顺便说一句,以及if(phoneText!=null&&!phoneText.equals(“”)
-风格的语句-这些语句肯定应该被一个漂亮而普通的if(!TextUtils.isEmpty(phoneText))
替换。您能进一步扩展吗?我开始理解,但还不足以实现它。谢谢。这更有意义。现在如何访问uuid字符串?它说这是一个局部变量,我以后无法在程序中使用它。我假设您正在使用PreferenceConnector以某种方式保存这些值?那么我在哪里做你的事。。。您可以使用PreferenceConnector来保存ID,就像保存其他值一样。然后在需要时从任何保存if的位置获取它。
SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean idHasBeenGenerated = prefs.getBoolean("idgenerated", false);
if(!idHasBeenGenerated){
String uuid = UUID.randomUUID().toString();
//do your thing with PreferenceConnector
Editor editor=prefs.edit();
editor.putBoolean("idgenerated", true);
editor.commit();
}else{
//Do nothing ID has already been generated
}