我正在使用Seekbar库,因此当我拖动搜索引擎时,我希望使用搜索者的值更新textview,但不幸的是我的应用程序崩溃了。我收到一条错误,上面写着"在TextView"上找不到资源。 代码如下:
RangeSeekBar seekBar1;
seekBar1 = (RangeSeekBar)rootView.findViewById(R.id.seekBar);
seekBar1.setValue(10);
seekBar1.setOnRangeChangedListener(new RangeSeekBar.OnRangeChangedListener() {
@Override
public void onRangeChanged(RangeSeekBar view, float min, float max, boolean isFromUser) {
seekBar1.setProgressDescription((int)min+"%");
TextView txtAmount;
txtAmount = (TextView)rootView.findViewById(R.id.txtAmount);
txtAmount.setText((int) min);
}
});
答案 0 :(得分:2)
解决方案:你不能像这样设置int到TextView,试试这个:
txtAmount.setText(Float.toString(min));
您正在使用的重载将查找字符串资源标识符,在这种情况下不存在。这里是以CharSequence作为参数的correct one(string is a CharSequence)。
很高兴知道:如果您现在想知道int如何成为setText的参数,那么它非常简单。在您的应用中,您可以拥有一个strings.xml
文件,用于定义要在应用程序中使用的一组资源字符串:
<resources>
<string name="test">This is a test</string>
</resources>
通过定义,您可以在TextView上显示文本,如下所示:
txtAmount.setText(R.string.test);
答案 1 :(得分:0)
如果将整数传递给setText,则android期望该值为资源。系统正在尝试查找id等于min的资源。您需要将min转换为字符串。
为了让它正常运行,请将txtAmount.setText((int) min);
更改为txtAmount.setText(String.valueOf(min));