1. #1
    Lt. Junior Grade
    Dabei seit
    Sep 2010
    Beiträge
    446

    [Java] [Andoid] Ausgabe von integer Resource in Textfeld ergibt absurde Werte

    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:
    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);
    Die Ausgabe ist dann jedoch:
    2131034112-> 35517235:12
    Wenn ich dann aber den Wert alleine ausgeben will, dann funktioniert es:
    Code:
    textview_time.setText (total);
    Die Ausgabe ist dann 71 und somit korrekt. Wie kann der Wert hier stimmen und oben nicht?

    Will ich min oder sec alleine ausgeben
    Code:
    textview_time.setText (sec);
    dann bekomme ich eine Fehlermeldung("Sorry! The application... has stopped unexpectedly. Please try again").


    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

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Cadet 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ß

  4. #3
    Lt. 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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •