Сохранение идентификатора пользователя в общих настройках Android - PullRequest
0 голосов
/ 07 февраля 2012

Я только что задал вопрос по этому поводу, но я хочу пойти по-другому.Когда пользователь редактирует свой профиль и нажимает кнопку «Сохранить», я хочу иметь возможность генерировать случайное число, используя UUID.Я хочу, чтобы этот идентификатор оставался прежним, если пользователь возвращается и редактирует свой профиль во второй раз (если они снова нажимают «сохранить», я хочу сохранить идентификатор, сгенерированный при первом нажатии «сохранить»).У меня есть следующий код, работающий для сохранения других данных, но я не уверен, как включить проверку, которая может выяснить, был ли уже создан идентификатор.Вот мой код:

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

1 Ответ

2 голосов
/ 07 февраля 2012

Вы можете установить логическое значение SharedPreference, для которого изначально установлено значение false, а затем установить значение true в первый раз, когда генерируется идентификатор, затем проверять этот логический параметр перед генерацией и идентификатором и генерировать только в том случае, если оно ложно, поэтому в основном

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

Редактировать:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...