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
Ah, vous avez raison. Ajout de la liste et le Bouton entrée pour mon activité de xml et de l'appel de
comme dans la réinitialisation des valeurs par défaut? définir une
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.
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
Vous devez vous connecter pour publier un commentaire.
Je répondre à la même question, et j'ai trouvé une manière de traiter ce problème.
Remplacer la méthode onCreateView dans PreferenceFragment, en utilisant le compte tenu de la LayoutInfalter par des paramètres pour créer votre propre point de Vue, et de retour de ce point de vue.
C'est mon code. J'espère que cela pourra vous être utile
OriginalL'auteur NicotIne
J'ai modifié le post précédent, un peu, de sorte que le bouton s'est attaché au bas de la vue.
OriginalL'auteur Sebastian U.
Il suffit de créer votre propre mise en page pour les paramètres de l'activité qui contient de l'affichage de la liste avec l'id @android:id/liste
Et puis, dans la classe d'activité définir le contenu de la vue avant d'ajouter préférence fragment
OriginalL'auteur iq_1
vous pouvez essayer cette
OriginalL'auteur Mohammed Subhi Sheikh Quroush