色関数を作るためにあなたの助けが必要です。このようなものを作成したいと思います
私はedittext
string の色の部分を入れたいと思っていますが、特別な入力例があります:
if the user type : ^1Hi ^2Stack^3Over^4Flow !
"Hi" = red color , "Stack" = green color , "Over" = blue color and "Flow" = orange color.
これを行う方法?
以下を試すことができます:
String styledText = "This is <font color='red'>Hi</font>"+" "+"<font color='green'>Stack</font>"+" "+"<font color='blue'>Over</font>"+" "+"<font color='orange'>Flow</font>";
textview.setText(Html.fromHtml(styledText));
区切り文字「^」を使用して StringTokenizer クラスを使用し、各単語から最初の文字を取得する必要があります。この数値は、たとえば List などのカラー配列のインデックスにすることができます
編集: このように stringTokenizer を作成します
StringTokenizer sT = new StringTokenizer(yourString, "^");
while(sT.hasMoreTokens()) {
String myColorString = sT.nextToken();
int color = myColorString.charAt(0);
String text = myColorString.substring(1, myColorString.length-1);
}
次に、色変数ごとに色を取得し、文字列テキストに色を付けることができます:)。
2文字以上の数字がある場合は正規表現を使用できますが、色を付けたい文字列の先頭に数字を付けたい場合に問題が発生します:);
1;myString^2;myString2^3;myString3 のようにすると良いと思います。
また、数値ごとに文字列トークナイザーを使用できます; myString も。
文字列全体を受け取り、それを個別の単語 (空白で区切る) に切り取り、すべての単語にカウンター ++ で色を付ける関数を作成します。