2017-08-28 54 views
0

我正在使用Seekbar库,因此当我拖动导引头时,我希望textview能够更新来自导引头的值,但不幸的是我的应用崩溃了。我得到一个错误,说“在TextView上找不到资源”。 的代码如下:使用Seekbar更改片段类中的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); 
     } 
}); 

回答

2

解决方案:您不能设置的int这样TextView的,试试这个来代替:

txtAmount.setText(Float.toString(min)); 

你使用会寻找一个字符串超载资源标识符,在这种情况下不存在。这里的correct one以CharSequence作为参数(string is a CharSequence)。


尼斯知道:如果你现在在想一个int怎么可以一个参数的setText,这是相当简单的。在您的应用程序,你可以有一个strings.xml文件,它定义了一组资源字符串在应用程序中使用:

<resources> 
    <string name="test">This is a test</string> 
</resources> 

随着该定义,则可以显示像这样在你的TextView文本:

txtAmount.setText(R.string.test); 
+0

谢谢你的答案。 –

0

如果你传递一个整数到setText中,android期望这个值是一个资源。系统试图找到id等于min的资源。您需要将min转换为字符串。

所以得到它的工作变化txtAmount.setText((int) min);txtAmount.setText(String.valueOf(min));