2012-02-07 3 views
0

방금이 질문을했지만 다른 방식으로 가고 싶습니다. 사용자가 프로필을 편집하고 저장 버튼을 누르면 UUID를 사용하여 임의의 숫자를 생성 할 수 있기를 원합니다. 사용자가 돌아가서 두 번째 프로필을 편집하면이 ID를 동일하게 유지하고 싶습니다 ('저장'을 다시 누르면 처음 '저장'을 눌렀을 때 생성 된 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));       
} 
+0

. 오, 그리고 당신의'if (phoneText! = null &&! phoneText.equals (""))'스타일 문장 - 반드시 멋지고 정상적인'if (! TextUtils.isEmpty (phoneText)) '로 대체되어야합니다. – Jens

답변

2

당신은 initialy false로 설정 한 다음 ID가 생성 참 foirst 시간으로 설정되는 부울 SharedPreference를 설정할 수는, 당신은 생성하고 ID 전에이 부울을 확인하고 경우에만 생성 그렇게 basicly 거짓

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

편집 :

당신이 BTW`PreferenceConnector`을 구현 한 방법에 따라 달라집니다
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 
} 
+0

이 부분을 더 확장 할 수 있습니까? 나는 그것을 이해하기는하지만 충분하지는 않다. 감사합니다 – mkyong

+0

굉장합니다. 이것은 훨씬 더 의미가 있습니다. 이제 uuid 문자열에 어떻게 액세스합니까? 그것은 그것이 지역 변수이며, 나중에 내 프로그램에서 사용할 수 없다고 말합니다. – mkyong

+0

임 PreferenceConnector를 사용하여 어떻게 든이 값을 저장한다고 가정합니다. 그래서 내가 가지고있는 // 당신의 일을 ... 다른 값을 저장하는 것처럼 PreferenceConnector를 사용하여 ID를 저장합니다. 그런 다음 필요할 때마다 구원 받는다. – mbwasi