Ajouter des boutons de PreferenceFragment

Je veux ajouter un couple de boutons au bas de mon écran des préférences pour le réglage des valeurs par défaut et restauration des paramètres par défaut. Cette réponse ne couvre pas comment faire cela en utilisant PreferenceFragment. Quelle est la méthode recommandée pour effectuer cette opération.

Activité qui charge les préférences de fragment:

public class SettingsActivity extends Activity {

    @Override
    public void onCreate( Bundle savedInstanceState) {

        super.onCreate( savedInstanceState);

        //load up the preferences fragment
        getFragmentManager().beginTransaction().replace( android.R.id.content, new PrefsSettingsFragment()).commit();
    }
}

PreferenceFragment mise en œuvre:

public class PrefsSettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate( Bundle savedInstanceState) {

        super.onCreate( savedInstanceState);  

        addPreferencesFromResource( R.xml.preferences);             
    }       
}

preferences.xml:

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

    <EditTextPreference android:key="edit_text_preference_server_address" android:title="@string/preference_server_address"/>
    <SwitchPreference android:key="switch_preference_bat" android:title="@string/preference_bat"/>
    <SwitchPreference android:key="switch_preference_comm" android:title="@string/preference_comm"/>
    <SwitchPreference android:key="switch_preference_dev_mode" android:title="@string/preference_dev_mode" android:defaultValue="true"/>

</PreferenceScreen>
J'ai peut-être tort, mais n'est-il pas de la même façon? vous venez de définir votre propre mise en page avec des boutons sur le bas et addPreferencesFromResource(...) doit remplir la liste. Bien que je ne recommande pas d'avoir des boutons flottant sur le bas de l'écran. À moins que vous voulez dire au bas de votre liste?
Ah, vous avez raison. Ajout de la liste et le Bouton entrée pour mon activité de xml et de l'appel de this.setContentView( R.layout.activity_settings) après getFragmentManager().beginTransaction().replace( android.R.id.content, new PrefsSettingsFragment()).commit() donne-moi un bouton en bas de page comme je le voulais. La prochaine étape est de trouver comment faire sur le bouton du travail.
comme dans la réinitialisation des valeurs par défaut? définir une onClickListner() pour le Bouton d'appel et PreferenceManager.setDefaultValues(context, PREFS_FILENAME, 0, R.xml.preferences, true); (false si vous ne voulez pas écraser déjà définir les préférences, et sont tout simplement paramètre par défaut pour la première fois)
Le problème est que les boutons sont unclickable. Je jouait avec elle pendant un certain temps, sans succès, j'ai donc décidé d'aller avec un approche la plus simple. Il est aussi inconfortable d'avoir les boutons flottant au bas de l'écran. Avec cette approche, ils peuvent apparaître à la fin de la liste des préférences.

OriginalL'auteur Namaste | 2012-09-06