【发布时间】:2012-06-15 08:31:49
【问题描述】:
我正在尝试根据SeekBar 的进度更改TextView 的颜色,如下所示:
- 0-25% -> 绿色
- 25%-50% -> 黄色等等...
当我使用以下代码时,TextView 不再显示该值。
我将不胜感激任何帮助!
代码:
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
textView.setText(String.valueOf(progress + "%"));
if(progress >= 25 && progress < 50)
textView.setTextColor(R.color.Yellow);
else if(progress >= 50 && progress < 75)
textView.setTextColor(R.color.Orange);
else if(progress >= 75 && progress <= 100)
textView.setTextColor(R.color.Red);
else
textView.setTextColor(R.color.Green);
}
XML:
<TextView
android:id="@+id/eT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tvProgress"
android:textColor="@color/Green"
android:textSize="25dp"
android:textStyle="bold"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
/>
【问题讨论】:
-
它有什么错误吗?您确定字符串 R.color.Yellow、R.color.Orange 和 R.color.Red 具有正确的十六进制值吗?
-
看起来您没有使用 setText 更新 textview。你必须做 textView.setText(progress);在每个 if 条件中
-
该代码应该可以正常工作。你确定要设置右边的文字+颜色
TextView? -
@Sana - 不,我没有收到任何错误。是的,字符串具有正确的十六进制值。
-
@Luksprog - 是的,它是正确的 TextView;我已经仔细检查过。
标签: android xml colors textview seekbar