在共享preferences Android的保存用户ID [英] Saving User ID in Shared Preferences Android

查看:199
本文介绍了在共享preferences Android的保存用户ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚问了这个问题,但我想用不同的方式去它。当用户编辑他/她的个人资料,并点击保存按钮,我希望能够生成UUID使用一个随机数。我想这个ID来如果用户返回并编辑他们的个人资料,第二次(如果它们preSS保存,我再次想保留已生成他们第一次$ pssed p $ id为保存保持不变')。我有以下的code工作保存其他数据,但我不知道如何包括检查,可以查出是否已经生成一个ID。这里是我的code:

 公共无效保存(查看视图){
    字符串firstnameText = firstname.getText()的toString()。
    。字符串lastnameText = lastname.getText()的toString();
    字符串phoneText = phone.getText()的toString()。
    字符串cityText = city.getText()的toString()。
    字符串zipText = zip.getText()的toString()。
    。字符串UUID = UUID.randomUUID()的toString(); //生成随机ID,但我
                                                 认为这会产生一个
                                                 每次数据是新的ID
                                                 保存    如果(firstnameText!= NULL)
        preferenceConnector.writeString(这一点,preferenceConnector.FIRSTNAME,
                firstnameText);
    如果(lastnameText!= NULL)
        preferenceConnector.writeString(这一点,preferenceConnector.LASTNAME,
                lastnameText);    如果(phoneText =空&放大器;!&放大器;!phoneText.equals())
        preferenceConnector.writeLong(这一点,preferenceConnector.PHONE,
                的Long.parseLong(phoneText));    如果(cityText!= NULL)
        preferenceConnector.writeString(这一点,preferenceConnector.CITY,
                city​​Text);    如果(zipText =空&放大器;!&放大器;!zipText.equals())
        preferenceConnector.writeInteger(这一点,preferenceConnector.ZIP,
                的Integer.parseInt(zipText));    如果(UUID!= NULL)//下一步是什么?    startActivity(新意图(preferencesActivity.this,Main.class));
}


解决方案

您可以在正在initialy设置为false,然后设置为true,则会生成一个ID的foirst时间布尔共享preference,那么你检查这生成和ID之前布尔值,而且如果是假的只是生成了这么basicly

  //从默认为false preFS得到idHasBeenGenerated
如果(!idHasBeenGenerated)
{
//生成ID
// idHasBeenGenerated为true的变化值,并保存在共享preFS。
}

编辑:

 共享preferences preFS = preferenceManager.getDefaultShared preferences(getApplicationContext());
布尔idHasBeenGenerated = prefs.getBoolean(idgenerated,FALSE);如果(!idHasBeenGenerated){
    。字符串UUID = UUID.randomUUID()的toString();//做你的事与preferenceConnector
    编辑编辑= prefs.edit();
    editor.putBoolean(idgenerated,真正的);
    editor.commit();
}其他{
    //已经产生什么也不做ID
}

I just asked a question about this but I want to go at it a different way. When a user edits his/her profile and hits the save button, I want to be able to generate a random number using UUID. I want this ID to stay the same if the user goes back and edits their profile a second time (if they press 'save' again I want to retain the ID that was generated the first time they pressed 'save'). I have the following code working to save other data, but I'm not sure how to include a check that can find out if an ID has already been generated. Here is my code:

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));                        
}

解决方案

You can set a Boolean SharedPreference that is initialy set to false and then set to true the foirst time an ID is generated, then you check this boolean before generating and ID and only generate if it is false so basicly

//get idHasBeenGenerated from prefs with default false
if(!idHasBeenGenerated)
{
//generate ID
//change value of idHasBeenGenerated to true and save in shared prefs.
}

Edit:

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
}

这篇关于在共享preferences Android的保存用户ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆