Wie kann ich die Farbe der Android-Präferenz zusammenfassen?

Auf meinem Voreinstellungsbildschirm habe ich eine Vorliebe, dass beim Anklicken ein Farbauswahl-Dialog geöffnet wird. Was ich tun möchte, ist, wenn der Benutzer eine Farbe auswählt, dass die Textzusammenfassung der Präferenz in dieser Farbe angezeigt wird.

Ich weiß, ich kann die Zusammenfassung so eingerichtet haben, Currently <font color="#ff0000">this color</font> und haben sie in dieser Farbe anzeigen. Das Problem ist die Farbe, die ich zurück bekomme, ist die androide Farbe.

Ich könnte die roten (), grünen (), blauen () Methoden verwenden und diese dann in Hex umwandeln und dann in einen String kombinieren, damit ich den zusammenfassenden Text mit dem neuen Wert setzen kann und das funktioniert: String colorString = String.format("#%02x%02x%02x",Color.red( defaultColor ), Color.green( defaultColor ), Color.blue( defaultColor )); Ich war nur neugierig, wenn es einen einfacheren Weg, dies zu tun ist.

Danke vor der Zeit.

Sean

  • Wie stelle ich edittext Präferenz Zusammenfassung und haben es Stick
  • Android-Präferenz Zusammenfassung. Wie kann ich 3 Zeilen zusammenfassen?
  • 5 Solutions collect form web for “Wie kann ich die Farbe der Android-Präferenz zusammenfassen?”

    OK, was ich am Ende tat, war mit einem Spannable. Das nimmt die Farbe als Ganzzahl an.

     Spannable summary = new SpannableString("Currently This Color"); summary.setSpan(new ForegroundColorSpan(color), 0, summary.length(), 0); preference.setSummary(summary); 

    Verwenden Sie Html.fromHtml, um Ihren Text zu stylen.

     mPodFolderPref.setTitle(Html.fromHtml("<font color='red'>" + mPodFolderPref.getTitle() + "</font>")); mPodFolderPref.setSummary(Html.fromHtml("<font color='red'>" + mPodFolderPref.getSummary() + "</font>")); 

    Html.fromHtml kann viel für Sie tun.

    Ein bisschen spät, aber ich fand es nützlich, diese in sich geschlossenen Methoden zu schreiben:

     private void setColorPreferencesTitle(EditTextPreference textPref, int color) { CharSequence cs = (CharSequence) textPref.getTitle(); String plainTitle = cs.subSequence(0, cs.length()).toString(); Spannable coloredTitle = new SpannableString (plainTitle); coloredTitle.setSpan( new ForegroundColorSpan(color), 0, coloredTitle.length(), 0 ); textPref.setTitle(coloredTitle); } private void resetColorPreferencesTitle(EditTextPreference textPref) { CharSequence cs = (CharSequence) textPref.getTitle(); String plainTitle = cs.subSequence(0, cs.length()).toString(); textPref.setTitle(plainTitle); } 

    Alle oben genannten Wege haben mir nicht geholfen Ich landete durch erweitert die Prefernces Klasse:

     public class CustomListPreferences extends Preference { public CustomListPreferences(Context context, AttributeSet attrs) { super(context, attrs); } public CustomListPreferences(Context context) { super(context); } @Override protected void onBindView(View view) { super.onBindView(view); ((TextView)view.findViewById(android.R.id.summary)).setTextColor(getContext().get Resources().getColor(R.color.green)); } } 

    Hallo, Sie können die Farbe der Präferenz mit Html.fromHtml () ändern.

    Ex: privat String title = "" + "Sende die SMS Send Limit" + "";

    Und fügen Sie diese Zeichenfolge von Ihrer Android-Anwendung wie folgt.

    CheckBoxPreference _test = (CheckBoxPreference) findPreference ("Text"); _test .setTitle (Html.fromHtml (Titel));

    Folge diesem Link für html Blick auf Android: http://www.androidpeople.com/tag/html-tags/

    Vielen Dank

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.