2017-08-28 96 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));