0

Android の ListView で TextView を強調表示する必要があり、ここで CommonsWare の応答を見て、.setText(Html.fromHtml(htmlString) メソッドを使用することにしました。したがって、アダプターにはこの formatString() メソッドがあります。

私は2つの問題を抱えています:

1) うまくいかないようです。

2) 機能したとしても、fullString はすべて大文字、すべて小文字、または単語の最初の文字として大文字の文字を使用できるため、制限があります。

textToHighlight は、fullString の単語の先頭にのみ配置されます。

private String formatString(String textToHighlight, String fullString) {
        if (textToHighlight== null || textToHighlight.equals("")) {
            return fullString;
        }
        String colore = "\"#0099CC\"";

        String htmlSubString = "<font color=" + colore + ">"
                + textToHighlight+ "!</font>";

        fullString.replace(textToHighlight, htmlString);

        return fullString;
    }

出力は次のようになります。

a) formatString("ca", "Cake Maccaroni") = "<font color=\"#0099CC\">Ca</font>ke Maccaroni"
b) formatString("ca", "CAKE MACCARONI") = "<font color=\"#0099CC\">CA</font>KE MACCARONI"
c) formatString("ca", "Maccaroni Cake") = "Maccaroni <font color=\"#0099CC\">Ca</font>ke"
d) formatString("ca", "MACCARONI CAKE") = "MACCARONI <font color=\"#0099CC\">CA</font>KE"
e) formatString("ca", "cake maccaroni") = "<font color=\"#0099CC\">ca</font>ke maccaroni"
4

2 に答える 2

1

fullString.replace(textToHighlight, htmlString);メソッドの結果を使用する場合は、値に代入する必要があります。return fullString.replace(textToHighlight, htmlString);最初の問題を解決する必要があります。

于 2013-10-22T22:11:55.067 に答える