Конкатенация span в Android

188
09 июля 2018, 04:10

Пробую сделать, что бы в тексте, выводимом в TextView, было "Необходимо ХХХ руб." Но ХХХ должно быть красным цветом.

Пробую так:

public void onButtonClick (View v) {
        TextView Total = (TextView) findViewById(R.id.result); 
        float Sum = (Tank-FuelCurrent)*PriceFl;
        String sSum = String.format("%.0f", Sum);
        SpannableStringBuilder ssb = new SpannableStringBuilder(sSum);
        ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, sSum.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        Total.setText("Необходимо "+ssb+" руб.");
}

Выводит полностью всю строку одним цветом по умолчанию. Если же меняю на

Total.setText(ssb);

то, соответственно, выводится только цена и выводится как надо, красным цветом. Тестирую на устройстве с Android 4.2.2. Как правильно произвести конкатенацию результата со строкой?

Answer 1

Используйте append

private fun stylizationTextInfo(textView: TextView) {
    val result = SpannableStringBuilder()
    val ssb = SpannableStringBuilder("1000")
    val txtNeed = SpannableStringBuilder("Необходимо ")
    val txtMoney = SpannableStringBuilder(" руб.")
    ssb.setSpan(ForegroundColorSpan(Color.RED), 0, ssb.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    result.append(txtNeed).append(ssb).append(txtMoney)
    textView.text = result
}

java:

private void stylizationTextInfo(TextView textView) {
    SpannableStringBuilder result = new SpannableStringBuilder();
    SpannableStringBuilder ssb = new SpannableStringBuilder("1000");
    SpannableStringBuilder txtNeed = new SpannableStringBuilder("Необходимо ");
    SpannableStringBuilder txtMoney = new SpannableStringBuilder(" руб.");
    ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, ssb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    result.append(txtNeed).append(ssb).append(txtMoney);
    textView.setText(result);
}

READ ALSO
Как хранить данные?

Как хранить данные?

Подскажите пожалуйста как хранить данные следующей задачи: У меня есть плейлист треков с перечислением мета-данных (заголовок, артист, альбом

196
JPA & HIBERNATE

JPA & HIBERNATE

Здравствуйте скажите пожалуйста в чем разница между JPA и HIBERNATE и если не сложно скажите что такое HIBERNATE и что такое JPA

184
Как найти нужный мне метод java\android?

Как найти нужный мне метод java\android?

Как найти нужный мне методДело в том ,что прочитав многие туториалы , так и не сложилось понимание , как же правильно применять те или иные...

208
Как расположить Div по центру при помощи margin?

Как расположить Div по центру при помощи margin?

Всем привет! Хочу сделать окошко по центру (очень заезжанная тема), но при помощи margin'а не получается(Я гуглил, ничего путного не нагуглил

192