Разный цвет текста

201
14 марта 2017, 13:37

Я хочу создать приложение, где много разных текстов и они чередуются в одном экране и в некоторых текстах надо поменять цвет нескольких(не всех) букв. Я написал код: всё работает, но изменение цвета букв в текстах не корректно работает, т.е цвет меняется и после клика на другой текст цвет исчезает, т.е когда возвращаюсь на этот же текст измененные цвета исчезают. Сможете помочь? есть кто сталкивались подобными трудностями?

Вот код:

public class MainActivity extends AppCompatActivity {
    String[] mTestArray;
    int texts = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ;
        mTestArray =   getResources().getStringArray(R.array.colors);
        ImageButton next = (ImageButton)findViewById(R.id.imageButton);
        ImageButton prev = (ImageButton)findViewById(R.id.imageButton2);

        final TextView tex = (TextView)findViewById(R.id.textview);
        Spannable sp = new SpannableString(mTestArray[2]);
        sp.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        tex.setText(sp);
        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(texts == mTestArray.length-1 ){
                    texts=0;
                }else {
                    texts++;
                }
                tex.setText(mTestArray[texts]);
            }
        });
        prev.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(texts == 0){
                    tex.setText(mTestArray[0]);
                }else {
                    texts--;
                }
                tex.setText(mTestArray[texts]);
            }
        });
    }
}

string.xml:

<resources>
<string name="app_name">ArrayTextColor2</string>
<string name="slidestring">Slide</string>
<string-array name="colors">
    <item>I read the letter. Stood up. Sat down.  Pondered for a minute. Then reread the letter again. Я прочитал письмо. Встал. Сел. Поразмышлял минуту. Потом еще раз перечитал письмо.</item>
    <item>It is only with the heart that one can see rightly. По-настоящему можно видеть только сердцем.</item>
    <item>One can become a writer only if he is talented. Писателем может стать только тот, у кого есть талант.</item>
    <item>They say, the winter will be cold. Говорят, зима будет холодной</item>
</string-array>
</resources>
READ ALSO
Data cleaning libraries for Java

Data cleaning libraries for Java

Привет! Подскажите есть ли какие нибудь библиотеки для Data cleaning на JavaНужно привести города и университеты к одному формату

168
Парсинг TSV файла, проблемы с кодировкой

Парсинг TSV файла, проблемы с кодировкой

Всем привет! Для парсинга TSV файла использую использую библиотеку [univocity] (http://mvnrepositorycom/artifact/com

296
Как правильно работать с адаптером

Как правильно работать с адаптером

Существует адаптер, который создает вьюшку, заполняет её инфой из массива и отдает еёВ каждой вьюшке есть 4 кнопки

270
Как задать время активации Notification в Android

Как задать время активации Notification в Android

Имеется файл в котором сохранен список времени выполнения, при нажатии на кнопку происходит извлечение времени из файла

201