Hallo,
ich habe mir eine integer Resource(Item vom Typ integer) erstellt, diese soll Sekunden speichern. Exemplarisch habe ich den Wert 71 darin gespeicher.
Ich möchte das ganze dann in der Form min:sek in einem TextView ausgeben, also min=res/60 und sec=res%60.
Nur bekommen ich absurde Werte ausgegeben.
Hier mal der Code, wie es eigentlich sein sollte:
Die Ausgabe ist dann jedoch:Code:int total = R.integer.countdown_seconds; int min = total / 60; int sec = total % 60; if (sec < 10) textview_time.setText (total + "-> " + min + ":0" + sec); else textview_time.setText (total + "-> " + min + ":" + sec);
Wenn ich dann aber den Wert alleine ausgeben will, dann funktioniert es:2131034112-> 35517235:12
Die Ausgabe ist dann 71 und somit korrekt. Wie kann der Wert hier stimmen und oben nicht?Code:textview_time.setText (total);
Will ich min oder sec alleine ausgeben
dann bekomme ich eine Fehlermeldung("Sorry! The application... has stopped unexpectedly. Please try again").Code:textview_time.setText (sec);
Ich benutze Ubuntu 12.04 und Eclipse, habe es sowohl mit OpenJDK als auch mit SunJDK versucht, desweiteren habe ich es auf meinem Handy getestet. Das Verhalten ist überall identisch, es sind auch immer die gleichen falschen Zahlen!
Danke
-
30.06.2012, 13:12 #1Lt. Junior Grade
- Dabei seit
- Sep 2010
- Beiträge
- 446
[Java] [Andoid] Ausgabe von integer Resource in Textfeld ergibt absurde Werte
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
30.06.2012, 13:41 #2Cadet 4th Year
- Dabei seit
- Jan 2004
- Beiträge
- 82
[Java] AW: [Andoid] Ausgabe von integer Resource in Textfeld ergibt absurde Werte
Der Grund warum textview_time.setText(total) das richtig liefert ist folgender Grund:
public final void setText (int resid)
(Quelle Android API: http://developer.android.com/referen...ml#setText(int))
man kann also direkt die ResourceID übergeben, so dass dann der Wert der in der Resource-File steht auch angezeigt wird.
int total = R.integer.countdown_seconds;
zeigt dir einfach die ID an, die in der R.java datei steht. Deshalb hast du auch diese merkwürdigen riesigen zahlen. du brauchst nun also eine methode, die dir den wert aus der resourcce-datei ausliest... ich denke mal das könnte so in die richtung getResource(...) gehen, weiß es aber grad nicht sicher, sollte dir aber ausreichen um die lsg zu finden.
Edit:
hab doch noch was auf die schnelle von google gefunden:
Resources res = getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);
http://developer.android.com/guide/t...s.html#Integer
viel spaß
-
30.06.2012, 14:19 #3Lt. Junior Grade
Ersteller dieses Themas
- Dabei seit
- Sep 2010
- Beiträge
- 446
[Java] AW: [Andoid] Ausgabe von integer Resource in Textfeld ergibt absurde Werte
Ah, das erklärt so einiges.

Danke.

Zitieren