Как я могу установить цвет текстового цвета предпочтения Android?

StackOverflow https://stackoverflow.com/questions/4005029

Вопрос

На экране моего предпочтения у меня есть предпочтение, которое при нажатии открывается диалоговое окно Picker. То, что я хотел бы сделать, это когда пользователь выбирает цвет, что текстовое резюме предпочтения отображается в этом цвете.

Я знаю, что я могу иметь сводную информацию, как это, Currently <font color="#ff0000">this color</font> И имейте это отображение в этом цвете. Проблема в том, что цвет, который я получаю обратно - это цвет Android INT.

Я мог бы использовать красные (), зеленые (), синие () методы, а затем преобразовывать их в шестнадцатеричное, а затем объединить их в строку, чтобы я мог бы установить сводный текст с новым значением, и это работает: String colorString = String.format("#%02x%02x%02x",Color.red( defaultColor ), Color.green( defaultColor ), Color.blue( defaultColor )); Мне просто любопытно, если есть более простой способ сделать это.

Спасибо заранее.

Севан

Это было полезно?

Решение

ОК, то, что я оказался, использовал пламетный. Это берет цвет как целое число.

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

Другие советы

Используйте HTML.FROMHTML для стиля вашего текста.

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

Html.fromhtml может многое сделать для вас.

Немного поздно, но я нашел полезно написать эти автономные методы:

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);
}

Все вышеперечисленные способы меня не помогли. Я оказался расширением класса предпочтиний:

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));
    }

}

Привет, вы можете изменить цвет предпочтения с помощью HTML.FROMHTML ().

EX: Private String Sitle = «+» Установите ограничение SMS Отправить «+»;

И добавьте установите эту строку из вашего приложения Android.

CheckBoxPreference _Test = (CheckBoxPreference) FindPreference («текст»); _test .settitle (html.fromhtml (название));

Следуйте по этой ссылке для HTML View на Android:http://www.androidpeople.com/tag/html-tags/

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top