0

これについて質問したばかりですが、別の方法で行きたいと思います。ユーザーがプロファイルを編集して保存ボタンを押すと、UUID を使用して乱数を生成できるようにしたいと考えています。ユーザーがプロファイルに戻って 2 回目の編集を行った場合に、この ID を同じままにしておきたい (もう一度 [保存] を押した場合、最初に [保存] を押したときに生成された ID を保持したい)。他のデータを保存するために次のコードを使用していますが、ID が既に生成されているかどうかを確認できるチェックを含める方法がわかりません。これが私のコードです:

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

1 に答える 1

2

最初に false に設定されたブール値の SharedPreference を設定し、次に 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.
}

編集:

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
}
于 2012-02-07T13:39:20.540 に答える