Question

Compte tenu de ce code, comment obtenir les valeurs de la case à cocher et de la préférence de texte et les stocker dans l'objet de domaine?

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);
    }
}

<?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>

Question d'origine: Créer une activité normale avec l'apparence et la convivialité d'une PreferenceActivity Mon objectif est de modifier les variables d'un objet de domaine à partir d'une activité avec l'apparence et la convivialité des préférences Android courantes.Quelle est la manière la plus simple d'y parvenir?

Serait-il possible de créer une PreferenceActivity et de la modifier d'une manière ou d'une autre pour afficher / modifier les valeurs d'un objet de domaine au lieu des valeurs de SharedPreferences?

Était-ce utile?

La solution

Bien sûr.Ajoutez simplement le code pour stocker les valeurs dans la base de données et n'oubliez pas de mentionner l'attribut android:persistent=false dans vos préférences xml.

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

De plus, vous pouvez faire beaucoup de choses avec l'objet soundcb: lire la valeur, définir onClickListeners et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top