Я работаю над чем-то, и моя конечная цель —
А. Разноцветные слова в TextView
B. Получите ввод от пользователя и поместите это слово в TextView с определенным цветом
http://puu.sh/9wpuU/fcc558a48a.png
Итак, что я попытался сделать, так это нажать кнопку «ОК» в моем построителе предупреждений. Я взял SpannableStringBuilder, добавил новый вводимый пользователем текст и установил для этого диапазона определенный цвет. Но он удаляет все предыдущие цветовые диапазоны, которые у меня были (я полагаю, потому что вы можете иметь только один диапазон за раз в SpannableStringBuilder?). Есть ли способ обойти это? Вот что я пробовал. РЕДАКТИРОВАТЬ весь класс сейчас там
public class WritingScreen extends Activity {
String title;
String text;
String userInput;
TextView story;
SpannableStringBuilder sb;
ForegroundColorSpan fcs;
int colorTracker;
int currentCharCount;
int nextCharCount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.writing_screen);
story = (TextView) findViewById(R.id.storyText);
sb = new SpannableStringBuilder(story.getText().toString());
fcs = new ForegroundColorSpan(Color.rgb(255, 0, 0));
currentCharCount = story.getText().length();
}
public void addTextClick(View v){
final EditText input = new EditText(this);
new AlertDialog.Builder(this)
.setTitle("Input Word")
.setView(input)
.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int whichButton) {
String value = input.getText().toString().trim();
value = " " + value;
sb = new SpannableStringBuilder(story.getText());
sb.append(value);
nextCharCount = sb.length();
sb.setSpan(fcs, currentCharCount, nextCharCount, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
story.setText(sb);
currentCharCount = nextCharCount;
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
})
.show();
}
}
Это дает мне это
http://puu.sh/9wq7z/7b7fb2f909.jpg
Когда я ввожу OK jj meh подряд. Я хочу, чтобы все они оставались того цвета, который я присвоил каждому слову в первую очередь. Любые идеи?