2013-02-16 3 views
3

나는 쇼 환경 설정 화면에 대한 다음과 같은 코드를 가지고 :활동에서 환경 설정 값에 액세스하는 방법은 무엇입니까?

Button showPreferences=(Button)findViewById(R.id.buttonShowPreferences); 
showPreferences.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     startActivity(new Intent(MainActivity.this, PreferencesActivity.class)); 
    }   
}); 

Button logPreferences=(Button)findViewById(R.id.buttonLogPreferences); 
logPreferences.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     String editText=prefs.getString("edit_text", "default_edit_text_value"); 
     boolean checkBox=prefs.getBoolean("check_box", true); 
     String list=prefs.getString("list", "default_list_value"); 

     Log.i("edit_text_value", editText); 
     Log.i("check_box_value", String.valueOf(checkBox)); 
     Log.i("list_value", list); 
    } 

}); 

당신은 두 번째 버튼은 환경 설정에서 값을 얻기 위해 사용된다 볼 수 있지만 문제가 같이 나는에서 항상 디폴트 값을 가지고 getString(), getBoolean() 메소드의 두 번째 매개 변수! PreferenceActivity를 클래스에 대한

레이아웃 :

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:key="first_screen_key" 
     android:summary="First summary" 
     android:title="First title" > 
     <CheckBoxPreference 
      android:persistent="true" 
      android:title="Check Box Title" 
      android:key="check_box_key" 
      android:defaultValue="false"/> 
     <ListPreference 
      android:persistent="true" 
      android:title="List Title" 
      android:key="list_key" 
      android:entries="@array/entries" 
      android:defaultValue="second_value" 
      android:entryValues="@array/entries_values"/> 
     <EditTextPreference 
      android:persistent="true" 
      android:title="Edit Text Title" 
      android:key="edit_text_key" 
      android:defaultValue="Edit Text Value"/> 
    </PreferenceCategory> 

</PreferenceScreen> 
+0

을 함께 "edit_text"를 교체해야 http://stackoverflow.com/questions/ 3907830/android-checkboxpreference-default-value) 게시물이 도움이 될 수 있습니다. –

답변

1

1.you가 DDMS-에서 XML 파일을 볼 수 있습니다> 파일 Explorer-> 데이터 -> 데이터 -> 당신의 패키지 -> shared_prefs -> * _ preferences.xml로

2. "check_box_key"/ "list_key"/ "edit_text_key"를 사용하여 "edit_text"/ "check_box"/ "list"를 대체하십시오.

0

코드의 문제는 사용자의 키가 환경 설정 XML에 설정된 키와 일치하지 않습니다. 예를 들어, 줄에 :

문자열 editText = prefs.getString ("edit_text", "default_edit_text_value");

"edit_text"는 어디에 있나요? 당신의 XML로

는 키의 이름은 : 안드로이드 : 키 = "edit_text_key는" 그래서 당신은 [이] (참조 "edit_text_key"

관련 문제