どのように私はAndroidの好みの要約テキストの色を設定することができますか?

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

質問

私の好みの画面で私がクリックしたときには、カラーピッカー]ダイアログボックスを開くことを好みを持っています。ユーザーが色を選択したときに私は何をしたいの好みのテキスト要約がその色で表示されていること、である。

私は、このように設定概要を持っているCurrently <font color="#ff0000">this color</font>、それはその色で表示することができます知っています。問題は、私は戻って取得しています色はアンドロイドint型のカラーです。

私は、)(赤、緑()、青()メソッドを使用して、六角にそれらを変換してから、私は新しい価値とその作品と要約テキストを設定することができるように文字列にそれらを組み合わせることができ:私がいたString colorString = String.format("#%02x%02x%02x",Color.red( defaultColor ), Color.green( defaultColor ), Color.blue( defaultColor ));ただ好奇心これを行うための簡単な方法があるかどうか。

事前に感謝します。

ショーン

役に立ちましたか?

解決

私がやってしまったものをOKにはSpannableを使用していました。これは、整数として色をとる。

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あなたのための多くを行うことができます。

Aは少し遅れて、私はこれらの自己完結型のメソッドを書くことが有用であることが分かっます:

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

上記のすべての方法は、私を助けていません。 Preferncesクラスを拡張することにより、私は終わっます:

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()。

例:プライベート文字列タイトル= "" + "に設定SMSの送信制限" + "";

このようなあなたのアンドロイドアプリケーションから設定されたこの文字列を追加します。

CheckBoxPreference _test =(CheckBoxPreference)findPreference( "テキスト")。 _test .setTitle(Html.fromHtml(タイトル));

アンドロイドのHTMLビューのために、このリンクに従ってください: http://www.androidpeople.com/tag/html-tags/する

おかげ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top