setText... Text geht aber Variable nicht!?

  • Antworten:5
  • Bentwortet
Harry Hirsch
  • Forum-Beiträge: 3

17.02.2014, 12:15:02 via Website

Hi,

bestimmt nur ein kleines Problem aber irgendwie komm ich nicht drauf:

1private void hups() {
2 int i = 0;
3 int p = 3;
4 int d = 5;
5 i=p+d;
6 text.setText(i);

Hierbei ´sagt der Simulator das das Programm gestoppt wird.

1private void hups() {
2 text.setText("hhhhhhhh");

Dies wird ohne Probleme ausgeführt .

Einer ne Idee warum?

Grüße und schoenen Sonntag noch.

Antworten
SvenDD
  • Forum-Beiträge: 272

17.02.2014, 12:20:52 via Website

Mache mal
1String.valueOf(i)
statt i.

Antworten
Harry Hirsch
  • Forum-Beiträge: 3

17.02.2014, 12:24:27 via Website

Sauber .... Vielen Dank!!!

Antworten
Lucas
  • Forum-Beiträge: 717

17.02.2014, 13:52:26 via App

oder setText("" + i)

Antworten
impjor
  • Forum-Beiträge: 1.793

17.02.2014, 17:30:25 via App

Zur Erläuterung:
TextView#setText() kann sowohl einen String-Parameter verarbeiten, als auch einen int-Parameter.
Wenn ein String übergeben wird, wird einfach der String dargestellt.
Wird aber ein int übergeben, wird nach der String-Resource gesucht: Alle Strings, die in /res/values/ gespeichert werden kann man über R.string.idDesStrings finden. R.string.idDesStrings ist ein konstanter int-Wert. So kann man dann einfach TextView#setText(R.string.idDesStrings); benutzen und das TextView findet den richtigen Text.
Wenn man nun aber irgendeinen int an TextView#setText() übergibt versucht die Funktion den entsprechenden String aus /res/values/ zu finden und scheitert meistens = App crasht.
Deshalb muss man der Funktion extra einen String übergeben, denn man aus einer Zahl eben mit String.valueOf(), Integer.toString() oder ""+int_wert bekommt.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Lucas

Antworten
Lucas
  • Forum-Beiträge: 717

17.02.2014, 17:39:42 via App

Sehr gute Erläuterung
wusste ich trotz guter Programmiererfahrung noch nicht

Antworten