2011-02-03 14 views
2

このコードでは、チェックボックスと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
私の目標は、表情でActivityからドメインオブジェクトの変数を編集することですストックアンドロイドの好みを感じる。これを達成する最も簡単な方法は何ですか?

PreferenceActivityを作成してSharedPreferencesの値ではなくドメインオブジェクトの値を表示/編集するように変更することはできますか?

答えて

2

もちろんです。値をデータベースに保存するためのコードを追加するだけで、環境設定のxmlにメンテナンスandroid:persistent=falseの属性を忘れることはありません。

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

さらに、あなたはsoundcbオブジェクトに多くのことを行うことができます、値を読み取るonClickListenersを設定するというように。

+0

入力いただきありがとうございます。どのようにチェックボックスとtextpreferenceから値を取得するのですか?私は質問を編集し、いくつかのコードを追加しました。 – Holm

+0

@Holm、答えを –

+0

@Holm、喜んで助けてください。 –

関連する問題