2011-02-03 3 views
2

이 코드를 사용하면 checkbox- 및 textpreference에서 값을 가져 와서 도메인 객체에 저장하는 방법은 무엇입니까? PreferenceActivity는 도메인 객체의 값을 표시/편집합니다.


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

    <PreferenceCategory android:title="General"> 
     <CheckBoxPreference 
      android:key="active_chkbox" 
      android:title="Active" 
      android:defaultValue="true" 
      android:persistent="false"/> 
     <EditTextPreference 
      android:key="name_txt" 
      android:dependency="active_chkbox" 
      android:title="Name" 
      android:summary="Enter a name" 
      android:dialogTitle="Enter a name" 
      android:dialogMessage="Enter a name" 
      android:defaultValue="John Doe" 
      android:persistent="false"/> 
    </PreferenceCategory> 
</PreferenceScreen> 

public class MonitorPreferences extends PreferenceActivity { 
    private PersistenceManager pm; 
    private Monitor monitor; 
    private boolean mActive; 
    private String mName; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     pm = new PersistenceManager(getApplicationContext()); 
     addPreferencesFromResource(R.xml.monitors_pref); 

     fetchDomainObject(); 
    } 

    private void fetchDomainObject() { 
     monitor = pm.fetchMonitor(getIntent().getLongExtra(SuperListActivity.EXTRA_KEY_MONITOR_ID, -1)); 
    } 

    private void persistDomainObject(Monitor monitor) { 
     pm.persist(monitor); 
    } 
} 
원래 질문 :의 모양과 느낌을 가진 정상적인 활동을 만들기 PreferenceActivity를
내 목표는 표정으로 액티비티에서 도메인 객체의 변수를 편집하는 것입니다 재고 안드로이드 환경 설정의 느낌. 이것을 달성하는 가장 쉬운 방법은 무엇입니까?

PreferenceActivity를 작성하여 SharedPreferences의 값 대신 도메인 객체의 값을 표시/편집 할 수 있습니까?

답변

2

물론. 값을 데이터베이스에 저장하는 코드를 추가하고 환경 설정 xml에 mental android:persistent=false 속성을 잊지 마세요.

final CheckBoxPreference soundcb = (CheckBoxPreference) findPreference("active_chkbox"); 

은 또한 당신은 soundcb 개체에 많은 일을 수행 할 수 있습니다 값을 읽어 등등 onClickListeners을 설정합니다.

+0

입력 해 주셔서 감사합니다. 확인란과 textpreference에서 값을 가져 오는 방법은 무엇입니까? 질문을 편집하고 코드를 추가했습니다. – Holm

+0

@Holm, 답변을 –

+0

@ 홀름, 기꺼이 도와 드리겠습니다. –

관련 문제