Вам действительно нужно, чтобы это был TextView, или вы вместо этого можете использовать ListView и добавить новую строку в список для каждой команды / ответа?
Если вы действительно хотитеиспользуя TextView, вы можете сделать что-то вроде этого (это рабочий пример, который вы можете просто скопировать и вставить в свое приложение, чтобы попробовать):
package com.c0deattack;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Spannable;
import android.text.style.ForegroundColorSpan;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MultipleColoursInOneTextViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
String command = "This is a command";
String response = "\nThis is a response";
tv.append(command + response);
Spannable spannableText = (Spannable) tv.getText();
spannableText.setSpan(new ForegroundColorSpan(Color.GREEN), 0, command.length(), 0);
spannableText.setSpan(new ForegroundColorSpan(Color.RED), command.length(), command.length() + response.length(), 0);
LinearLayout layout = new LinearLayout(this);
layout.addView(tv);
setContentView(layout);
}
}
Так что это показывает, что это можно сделать, но выОчевидно, вы заметите, что вам придется самим устанавливать разрывы строк и тренировки, где каждая команда / ответ начинается и заканчивается, чтобы вы могли применить к ней правильный цвет.Это не так сложно, но для меня это кажется неуклюжим.