У меня есть приложение, в котором мне нужно отобразить список чисел, но числа должны быть отформатированы в зависимости от их значения.Отрицательные числа показаны в обычном тексте, положительные числа показаны как полужирный .Кроме того, число должно всегда быть положительным в текстовом представлении.Я попытался расширить TextView с переопределением setText следующим образом:
@Override
public void setText(CharSequence text, TextView.BufferType type) {
double number = Double.parseDouble(text.toString());
if (number > 0) {
this.setTypeface(this.getTypeface(), BOLD);
} else {
this.setTypeface(this.getTypeface(), NORMAL);
number = Math.abs(number);
}
super.setText(number + "", type);
}
Это не совсем работало, так как setText вызывался несколько раз для одного и того же MyTextView.Это привело к тому, что каждое число будет выделено жирным шрифтом, поскольку в следующий раз оно будет положительным.
Я хотел бы сохранить эту логику в виджете, а не в том месте, где задан текст, так как это очень часто встречается.в моем приложении.
Есть ли способ сделать это в виджете?