0

私の質問はTextView、さまざまな値の を持っていることです。たとえば、-1.7 +5,8 -3,3 0,0 +7,7 です。

私が行ったコードでは、最初の負の値を取り、すべて同じ色のままにします。

これは私のコードです:

アクティビティ:

    List<ParsedExampleDataSet5101> parsedExampleDataSetList = 
                myExampleHandler.getParsedData();

        for(ParsedExampleDataSet5101 parsedExampleDataSet : parsedExampleDataSetList){

            tv.append(parsedExampleDataSet.toString());
            tv1.append(parsedExampleDataSet.toString1());
                    tv2.append(parsedExampleDataSet.toString2());
            tv3.append(parsedExampleDataSet.toString3());   

            if (parsedExampleDataSet.toString2().contains("-")){
                tv2.setTextColor(Color.parseColor("#FF0000"));
            }else{
                tv2.setTextColor(Color.parseColor("#008000"));
            }

        }

ParsedExampleDataSet5101は別のクラスです。このクラスにはゲッターとセッターがあり、toString()

4

2 に答える 2

0

彼の答えは完全ではありませんが、Ridcullyは基本的に正しいです-そしてspanタグもサポートされていません。

TextviewsでHTMLを使用できますが、フォーマット情報を含むSpanned(CharSequenceのサブクラス)を作成する必要があります。

Spannedは、Html.fromHtml()を使用して作成します。TextViewsでのHTMLフォーマットの詳細については、私の投稿「 Html.fromHtml()を使用したテキストのフォーマット」を参照してください。

したがって、次のようなことができます。

  if (parsedExampleDataSet.toString2().startsWith("-")){
     tv2.append(Html.fromHtml("<font color=\"#ff0000\">" + parsedExampleDataSet.toString2() + "</font>"));
  }else{
     tv2.append(parsedExampleDataSet.toString2());
  }
于 2012-08-23T20:12:44.473 に答える
0

私の知る限り、単純な HTML を使用して TextView のテキストをフォーマットすることができるので、<span style="color:#FF0000">first value</span><span style="color:#008000">next value</span>.

StringBuffer s = new StringBuffer();
for(ParsedExampleDataSet5101 parsedExampleDataSet : parsedExampleDataSetList){
    if (parsedExampleDataSet.toString2().contains("-")) {
        s.append("<span style="color:#FF0000">")
    } else {
        s.append("<span style="color:#008000">")
    }
    s.append(parsedExampleDataSet.toString2());
    s.append("</span>");
}
tv.setText(s.toString()); // <-- supposing tv is your TextView object
于 2012-08-23T19:34:49.077 に答える