2017-01-06 6 views
2

ich den folgenden Java-Code in Android Studio wurde die Umsetzung:TextView.setText (int) verursacht App zum Absturz

private void display(int number) { 
    TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); 
    quantityTextView.setText(number); 
    ... 
} 

Dies ist ein Teil einer größeren Anwendung.

Wie Sie sehen können, habe ich nur einen ganzzahligen Wert an die quantityTextView.setText(number) Methode übergeben.

Wenn die App ausgeführt wird, stürzt sie ab, sobald diese Methode aufgerufen wird. Kannst du mir sagen, warum so etwas passiert?

+0

Bitte fügen Sie den Stack-Trace (Fehlertext) ein. –

Antwort

3

Ja, verwenden String.valueof(), wie folgt aus:

private void display(int number) { 
    TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); 
    quantityTextView.setText(String.valueof(number)); 
1

die ganze Zahl in String konvertieren, bevor es in der Textview setzen:

quantityTextView.setText(Integer.toString(number)); 

oder einfach

quantityTextView.setText(number+""); 
0

setText() Methode von TextView akzeptiert CharSequence, keine Ganzzahlen. Also müssen Sie Ihre Nummer vorher in String umwandeln.

Versuchen Sie, diese nutzen:

quantityTextView.setText(Integer.toString(x)); 
3

Da setText() nur String-Werte oder Ressourcen-ID eines String akzeptiert (die infact int).

prüfen: setText() Method

Sie String.valueOf(number); als Eingangsparameter von setText() verwenden können oder Sie String-ID in XML mit getResources().getString(R.string.number) als Eingabewert beziehen.

1

Der Grund dafür, dass Ihr Code abstürzt, ist setText(int) expects a resource ID. Es ist nicht sehr gut dokumentiert, so dass Sie denken würden, dass Sie es eine Ganzzahl übergeben und die TextView in Text konvertieren können.

Sie sollten es zuerst in einen String umwandeln, zum Beispiel mit:

String.valueOf(number) 

und dann wird es in Ordnung sein.

0

Der Grund ist, dass setText() nur String oder char [] erwartet.

So können Sie entweder Typ Gießen durchführen oder Sie können

(1) mit der Nummer Anführungszeichen hinzufügen. nach Typ Gießen String.valueOf (Nummer)

(2). durch Hinzufügen von "" mit der Nummer mengeTextView.setText ("" + Nummer); oder mengeTextView.setText (Nummer + "");

Verwandte Themen