2017-08-28 3 views
0

Ich benutze eine Seekbar-Bibliothek, also wenn ich den Sucher ziehe, erwarte ich, dass die Textansicht mit dem Wert vom Sucher aktualisiert wird, aber leider stürzt meine App ab. Ich erhalte eine Fehlermeldung, die besagt, dass die Ressource nicht in der TextView gefunden wurde. Der Code ist unten:TextView-Wert in einer Fragment-Klasse mit Seekbar ändern

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); 
     } 
}); 

Antwort

2

Lösung: Sie nicht int auf die Textview so einstellen können, versuchen Sie stattdessen:

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

Die Überlastung Sie nach einer Zeichenkette suchen wurden unter Verwendung würde Ressourcen-ID, die in diesem Fall nicht existiert. Hier ist die correct one, die eine CharSequence als Argument (string is a CharSequence) nimmt.


Gut zu wissen: Wenn Sie jetzt nach links sich fragen, wie ein int ein Argument zu setText sein kann, ist es ganz einfach. In der App können Sie eine strings.xml-Datei, die eine Reihe von Ressourcen-Strings definiert in der Anwendung verwendet werden:

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

Damit definiert ist, können Sie den Text auf dem Textview wie folgt zeigen:

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

Vielen Dank für die Antwort. –

0

Wenn Sie eine Ganzzahl in setText übergeben, erwartet Android, dass der Wert eine Ressource ist. Das System versucht eine Ressource zu finden, deren ID gleich min ist. Sie müssen min in eine Zeichenfolge konvertieren.

So ist es Veränderung zum Laufen zu bringen txtAmount.setText((int) min);-txtAmount.setText(String.valueOf(min));

Verwandte Themen