Hallo Ich versuche, die Textfarbe der Elemente in einer Liste zu ändern, auf einem ListPreference
Fenster. Ich habe über eine Stunde damit verbracht, alle verschiedenen Stilnamen durchzusehen, aber ich kann weder TextAppearance
noch irgendetwas anderes finden, was zu diesem speziellen Text gehört. Danke für Ihre Hilfe!Wie ändern Sie die Textfarbe der Listenelemente in einer Alertdialog
Antwort
Sie können nicht und Sie sollten nicht. *Preference
verwendet Stile von com.android.internal.R.styleable
, die von Herstellern geändert werden können. Die Idee, die Standardeinstellungen zu verwenden, ist, dass jeder Einstellungsbildschirm in Ihrem Gerät gleich aussieht.
Auf der anderen Seite können Sie eine Activity
mit android:theme="@android:style/Theme.Dialog"
in Ihrer App AndroidManifest
und legen Sie eine ListView
Versuchen Sie, gestylt wie Sie wollen.
Ich habe das Thema nicht auf die Voreinstellung selbst angewendet, sondern auf den AlertDialog. Theme sieht gut aus auf allen anderen AlertDialogs, aber der unglückliche Nebeneffekt ist, dass 'ListPreference' auch einen' AlertDialog' verwendet, so dass ich jetzt meinen dunklen Hintergrund habe und der Text nicht lesbar ist. Ich kann einen Sonderfall Stil machen für meine 'PreferenceActivity', die nicht den' AlertDialog' Thema nicht außer Kraft setzen, aber es wäre schön, wenn es den Rest der App passen könnte .. – schwiz
Wenn Sie das Thema ändern, erstellen Sie einfach eine neue Aktivität mit Theme.Dialog Stil und tun, was Sie wollen in ihm. – Macarse
Preference.DialogPreference ist der Stil des Parents von ListPreference, da es sich nicht um einen direkten Stil der ListPreference handelt. Sie können diesen spezifischen Stil im Design überschreiben und auf alle Aktivitäten anwenden. Dies wirkt sich nicht auf alle AlertDialogs aus. – codeScriber
Ich weiß nicht wirklich welche Art von View
verwenden, wahrscheinlich ist es so etwas wie TextView
. Wenn ja, könnte man etw machen:
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);
nicht dies nicht die Antwort ist, zunächst einmal, wie würden Sie selbst eine bekommen Verweis auf die 'TextView' Ich suche nach einer Möglichkeit, dies durch Stile zu beheben. Vielen Dank. – schwiz
eine Ahnung, was der Stil für die ListPreference zu bedienen? Ich kann Ihnen sagen, ich hatte das gleiche Problem mit Dialogen (Hintergrund) und ich fand, dass es ein C'tor gibt, das ein Thema als int für mich enthält, damit ich vom ursprünglichen Dialog.Theme erben und meine eigenen Eigenschaften ändern konnte. – codeScriber
Nein, das ist im Grunde meine Frage, was Stil, den ich um außer Kraft zu setzen brauche die Textfarbe im 'ListView' für ein' AlertDialog' – schwiz
Da Ihre Frage zu ändern, mit ListPreference zu tun hat, und ich habe noch nie mit, dass etwas getan ... ich bin mir nicht sicher, ob dir das weiterhilft ... allerdings kann ich dir in Bezug auf einen ListView in einem AlertDialog helfen. http://www.anddev.org/code-snippets-for-android-f33/icon-list-in-alertdialog-t49975.html – androidworkz