2016-06-24 1 views
0

J'essaie de créer un menu de configuration avec cardView et Preference, mais je ne suis pas sûr de savoir comment combiner ces deux ... Voici la capture d'écran et je veux déplacer les entrées ListPreference et PreferenceScreen dans le carte de réglageVoir ci-dessus. Voici le preference.xml La mise en page/setting_group est un Vignettes Comment combiner préférence et CardView

<PreferenceScreen 
    android:layout="@layout/setting_title_top" 
    android:title = "Padding" /> 
<PreferenceScreen 
    android:layout="@layout/setting_group"> 
</PreferenceScreen> 
<ListPreference 
    android:id="@+id/list" 
    android:layout="@layout/setting_menu" 
    android:dialogTitle = "title one" 
    android:key = "key_1" 
    android:title = "ListPreference" 
    android:summary = "Summary" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</ListPreference> 

<PreferenceScreen 
    android:layout="@layout/setting_menu" 
    android:key="Key two" 
    android:summary="Summary" 
    android:title="PreferenceScreen" /> 
<PreferenceScreen 
    android:layout="@layout/setting_title" 
    android:title = "Another Setting" /> 

enter image description here

Répondre

1

Le PREFERENCE est un conteneur, vous ouvrez et le fermer à l'intérieur notant.

Vous pouvez créer des préférences comme ça:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 




    <EditTextPreference 
    android:capitalize="words" 
    android:defaultValue="@string/default_value" <!--The initial state of the preference --> 
    android:key="@string/pref_key" <!-- The key for retrieve the preference --> 
    android:singleLine="true" 
    android:title="@string/pref_title" /> <!-- The title who is showing above the preference --> 


</PreferenceScreen> 

Edit: Créez un fichier xml pour la mise en page de vos préférences et de créer et d'activité, par exemple:

public class SettingsActivity extends PreferenceActivity 
    implements Preference.OnPreferenceChangeListener { 
@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.pref_general); 
    bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_key))); // Is deprecated, but still a good option to no need change the values manually. 


} 

private void bindPreferenceSummaryToValue(Preference preference) { 
    preference.setOnPreferenceChangeListener(this); 

    onPreferenceChange(preference, PreferenceManager 
      .getDefaultSharedPreferences(preference.getContext()) 
      .getString(preference.getKey(), "")); 

} 


@Override 
public boolean onPreferenceChange(Preference preference, Object value) { 
    String stringValue = value.toString(); 
    preference.setSummary(stringValue); 



    return true; 
} 
} 
+0

Salut Lucas, j'ai essayé de Collez mon Code ListPreference dans le PreferScreen avec "@ layout/setting_group", mais rien ne s'affiche. Comment insérez-vous une préférence dans un cardview? – Deidara

+0

Pourquoi avez-vous besoin d'une vue de carte? L'écran de préférences utilise les directives de google material design, il suffit de créer un PreferenceScreen et de mettre les champs dont vous avez besoin à l'intérieur, vous n'avez pas besoin d'un autre conteneur. –

+0

Je veux faire un menu de réglage qui ressemble au menu original de l'androïde ... J'ai besoin de personnaliser le composant pour rendre l'interface utilisateur plus belle – Deidara