Пробую сделать, что бы в тексте, выводимом в 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. Как правильно произвести конкатенацию результата со строкой?
Ответ
Используйте 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);
}
Комментариев нет:
Отправить комментарий