2012-01-26 3 views
0

많은 시행 착오 끝에 i가이 질문을하기로 결정했습니다. 라디오 그룹 ID를 저장할 수 없으므로 라디오 버튼을 사용하는 활동으로 돌아 가면 다시 한 번 비어 있습니다. 라디오 그룹이 정확하게 저장되지 않음

public class Random extends Activity implements RadioGroup.OnCheckedChangeListener, OnClickListener { 
... 이 ...

이 내가 체크 라디오 버튼 ID

public void onCheckedChanged (RadioGroup group, int checkedId) { 

     int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId(); 
     int configGroup_CheckId = configGroup.getCheckedRadioButtonId(); 

     SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE); 
     SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit(); 
     prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId); 
     prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId); 
     prefsEditor.commit(); 
} 

를 저지 나는이를 추가하는 방법입니다 : 여기

내 코드입니다 onCreate

public void onCreate(Bundle savedInstanceState) { 
    SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE); 
    profileGroupPrefs.getInt("profileGroup_CheckId", 0); 
    profileGroupPrefs.getInt("configGroup_CheckId", 0); 

이제 profile_.xml을 확인 했으므로 내 앱의 shared_prefs에 ARE 값이 저장되었지만 반환하면 라디오 버튼이 선택되지 않습니다.

여기에 사용자가 나열한 여러 가지 방법을 시도했지만 아무도 작동하지 않았습니다. 도움을 주시면 감사하겠습니다.

+1

onResume()/onCreate()에 저장 한 값으로이 활동으로 돌아 오면 다시 설정 했습니까? sharedpreferences에서 값을 가져 오는 위치를 설정하는 부분이 표시되지 않습니다. –

+0

죄송합니다. 잘못된 코드를 붙여 넣었습니다. 나는 내 대답을 편집했다. 내가 무엇을 가지고 있는지 다시 보아라. –

+0

("profileGroupPrefs", MODE_WORLD_READABLE) 쓰기가 불가능한 이유는 무엇인가? onResume()은 어디에 있나요? 대개 인스턴스 상태를 onPause()에 저장합니다. –

답변

3

이것을 시도하십시오.

public void onCheckedChanged (RadioGroup group, int checkedId) {  
    int profileGroup_CheckId = profileGroup.getCheckedRadioButtonId(); 
    int configGroup_CheckId = configGroup.getCheckedRadioButtonId(); 

    SharedPreferences profileGroupPrefs = getSharedPreferences("profileGroupPrefs", MODE_WORLD_WRITABLE); 
    SharedPreferences.Editor prefsEditor = profileGroupPrefs.edit(); 
    prefsEditor.putInt("profileGroup_CheckId", profileGroup_CheckId); 
    prefsEditor.putInt("configGroup_CheckId", configGroup_CheckId); 
    prefsEditor.commit(); 
) 

public void onResume() { 
super.onResume(); 
SharedPreferences profileGroupPrefs = this.getSharedPreferences("profileGroupPrefs", MODE_WORLD_READABLE); 
    int a= profileGroupPrefs.getInt("profileGroup_CheckId", 0); 
    int b= profileGroupPrefs.getInt("configGroup_CheckId", 0); 
    profileGroup.check(a); 
    configGroup.check(b); 
    } 
+0

네, 코드를'onResume()'으로 옮겨야합니다. – LuxuryMode

+0

오 주여 : D 감사합니다. 너 둘 다 너무 너. 짐작할 수 있듯이 자바를 처음 접하는 사람 : D. 이것은 훌륭하게 작동합니다. 다시 한번 감사드립니다. –

관련 문제