изменение цвета переменной типа String
Я создал переход по нажатию на кнопку с одного активити на другое с помощью интента, при этом через метод putExtra я переношу информацию написанную пользователем в едит тексте первого активити во второе. но мне нужно изменить цвет написанного пользователем текста в первой активити во втором. через setTextColor у меня это сделать не выходит т.к использую переменную типа String и весь мой код подчеркивает красным. не знаю что делать,уже неделю пытаюсь по всякому решить это проблему,облазил весь гугл,но ничего стоящего не нашел.
String name_1 = "";
String name_2 = "";
name_1 = getIntent().getExtras().getString("ego_imya");
name_2 = getIntent().getExtras().getString("ee_imya");
TextView names = (TextView)dialog_1.findViewById(R.id.textSImenami);
names.setText(name_1 + " и "+ name_2 + " очень любят друг друга и свою кошку Эссю " );
names.setTextColor(getResources().getColor(R.color.black60));
вот код. нужно изменить цвет текста name_1 и name_2 на black,но при этом,чтобы текст остального текста оставался black60. В общем выделить два ключевых слова
Ответы (1 шт):
Вам нужно использовать SpannableString, если Вы хотите выделять отдельные слова в тексте.
String str = name_1 + " и "+ name_2 + " очень любят друг друга и свою кошку Эссю "; //создаем строку
ForegroundColorSpan foregroundSpan = new ForegroundColorSpan(Color.RED); //тут Ваш цвет
SpannableString spannableString = new SpannableString(str); //создаем Spannable вариант нашей строки
int startIndex = str.indexOf(name_1);//находим индекс начала первого участка для выделения
int endIndex = startIndex + name_1.length();//находим индекс конца первого участка для выделения
spannableString.setSpan(foregroundSpan, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //выделяем первый участок
//далее аналогичные действия для второго участка
int startIndex2 = str.indexOf(name_2);
int endIndex2 = startIndex + name_2.length();
spannableString.setSpan(foregroundSpan, startIndex2, endIndex2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);