Bonjour J'essaie de changer la couleur du texte des éléments d'une liste sur une fenêtre contextuelle ListPreference
. J'ai passé plus d'une heure à regarder à travers tous les noms de styles différents, mais je ne peux pas trouver TextAppearance
ou tout ce qui va à ce texte particulier. Merci de votre aide!Comment changer la couleur de texte des éléments de la liste dans un AlertDialog
Répondre
Vous ne pouvez pas et vous ne devriez pas. *Preference
utilise des styles de com.android.internal.R.styleable
qui pourraient être modifiés par les fabricants. L'idée d'utiliser les paramètres par défaut est que tous les écrans de préférences de votre appareil se ressemblent.
D'autre part, vous pouvez essayer de faire un Activity
avec android:theme="@android:style/Theme.Dialog"
dans AndroidManifest
de votre application et placez un ListView
style que vous voulez.
Je n'ai pas appliqué le thème à la préférence elle-même, mais à la classe AlertDialog. Le thème est superbe sur tous les autres AlertDialogs, mais l'effet secondaire regrettable est que ListPreference utilise également un objet AlertDialog, ce qui fait que mon arrière-plan est sombre et que le texte n'est plus lisible. Je peux faire un style de cas particulier pour mon 'PreferenceActivity' qui ne remplace pas le thème' AlertDialog', mais ce serait bien si cela pouvait correspondre au reste de l'application .. – schwiz
Si vous changez le thème, il suffit de créer un nouveau activité avec le style Theme.Dialog et faire ce que vous voulez. – Macarse
Preference.DialogPreference est le style du parent de ListPreference, il ne semble pas être un style direct de ListPreference. Vous pouvez remplacer ce style spécifique dans le thème et l'appliquer à toutes les activités, ceci n'affecte pas tous les AlertDialogs. – codeScriber
Je ne sais pas vraiment quel type de View
utiliser ListPreference
, c'est probablement quelque chose comme TextView
. Si oui que vous pourriez faire smth comme:
TextView textView;
String myString;
//....
SpannableString spanString=new SpannableString(myString);
spanString.setSpan(new ForegroundColorSpan(Color.RED), 0, myString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(spanString);
non ce n'est pas la réponse, d'abord comment auriez-vous même un référence à 'TextView' Je cherche un moyen de résoudre ce problème à travers les styles. Merci. – schwiz
une idée quel est le style pour le ListPreference à utiliser? Je peux vous dire que j'ai eu le même problème avec les boîtes de dialogue (arrière-plan) et j'ai trouvé qu'il y a un C'tor qui inclut un thème comme int pour que je puisse hériter du Dialog.Theme original et changer mes propres propriétés. – codeScriber
Non, c'est essentiellement ma question, quel style ai-je besoin de redéfinir pour changer la couleur du texte dans 'ListView' pour un' AlertDialog' – schwiz
Puisque votre question a à voir avec ListPreference et que je n'ai jamais rien fait avec ça ... Je ne suis pas sûr que cela vous aidera ... cependant, en référence à ListView dans un AlertDialog, je peux vous aider avec cela. http://www.anddev.org/code-snippets-for-android-f33/icon-list-in-alertdialog-t49975.html – androidworkz