【问题标题】:Calculated value based on seekbar not displayed in textview基于搜索栏的计算值未显示在文本视图中
【发布时间】:2017-07-28 06:49:06
【问题描述】:

我有两个搜索栏,根据它们的值,我正在做一些数学运算并将结果放在文本视图中。当我更改搜索栏的进度时,文本视图“闪烁”,我想这是正常的,因为该值被删除并插入了一个新值。在模拟器上安装代码,在某些情况下,释放搜索栏后计算值会消失。将代码放在设备上后,该值甚至不再显示。问题可能是什么? 这是一些代码:

weight = weightSeekBar.getProgress();
height = ((double) heightSeekBar.getProgress()) /100;
double bMI = weight/(height*height);
bMIValueText.setText("BMI value: " + bMI);
Log.d(TAG,"weight= " + weight + " height= " + height + " BMI = " + bMI);

注意:每次更改后都会显示“BMI 值”文本。这段代码是在 Seekbar 监听器中实现的

 public void onProgressChanged(SeekBar seekBar, int i, boolean b)

方法。

【问题讨论】:

  • TextView 的宽度是否足以正确显示长十进制表示的值?尝试格式化bMI 的值以在小数点后显示固定位数。
  • 在日志中打印 bMI 值
  • @MMMM 你能贴出你用于搜索栏的值吗?我猜问题出在你的值上。
  • @SpaceBison 你能把这个作为答案发布吗?问题是文本视图的宽度。我愿意接受它作为正确答案。
  • @MMMM 完成,感谢您的考虑。 :)

标签: android textview seekbar


【解决方案1】:

对于具有较长十进制表示的值,TextView 可能不够宽,导致文本消失。您可以限制小数点后的位数,使其始终适合(例如,使用String.format())。

【讨论】:

    【解决方案2】:

    由于给出的代码量很难理解,但如果您想在运行时更改 ui(视图)的某些部分,则需要使用 Handler。

    【讨论】:

    • 我认为这不能成为问题的答案。
    猜你喜欢
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多