Uhrzeit anzeigen

  • Antworten:8
Matthias Leitner
  • Forum-Beiträge: 5

10.07.2012, 07:01:28 via Website

Hallo!

Ich habe erst vor kurzem begonnen, Apps zu programmieren und bin daher noch relativ unerfahren.

Ich möchte gerne in meinem momentanen App was ich dabei bin zu programmieren die Uhrzeit anzeigen, und zwar ständig die richtige...

habs mit folgendem Code probiert:

runOnUiThread(new Runnable() {
public void run() {
time.setText(currentTime.toString());
}
});

wobei time den Typ TextView hat..

Im string.xml steht folgendes:
<string name="time">%s</string>

Mfg

Antworten
Ben Becker
  • Forum-Beiträge: 209

10.07.2012, 15:17:30 via Website

So benutzt du aber nicht das Time aus dem String, so schreibst du direkt in das Textfeld. Dafür musst du beim String.xml nichts eintragen. Was funktioniert denn jetzt nicht? Bekommst du denn eine Fehlermeldung?

Antworten
Aeefire
  • Forum-Beiträge: 172

10.07.2012, 18:04:55 via Website

wie ist denn "currentTime" definiert? nimmst du System.currentTimeMillis? Das gibt ja nen (long?) Wert zurück, aber keine rihctige Uhrzeit, das müsstest du erst umformatieren..

Antworten
Matthias Leitner
  • Forum-Beiträge: 5

11.07.2012, 05:11:24 via Website

Wenn ich die paar Code Zeilen für die Uhrzeit ins Programm schreibe und das App anschließend mit dem Emulator starte kommt folgende Error Meldung:

Sorry!
The application GetUp (process com.MatthiasLeitner.getup) has stopped unexpectedly. Please try again.


Aber wie soll ich es nun machen? Das Datum auf einen String schreiben und diesen dann auf das Textfeld?


currentTime ist vom Datentyp Date...

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

11.07.2012, 10:20:26 via Website

Lass doch erst mal den Thread, versuch doch erstmal ob Du überhaupt etwas rausbekommst.

Das steht u.a. in dem Layout welches Du in Deiner Activity im onCreate mit setContentView füllst:

1<TextView
2 android:layout_height="wrap_content"
3 android:layout_width="fill_parent"
4 android:id="@+id/tv_time" />

Im onCreate der selben Activity, irgendwo hinter dem setContentView suchst Du Dir den TextView aus dem Layout raus.

1TextView textViewTime = (TextView) findViewById(R.id.tv_time);

Und irgendwo dahinter im onCreate der selben Activity gibst Du dann den Zeitstempel aus:

1Calendar calendar = Calendar.getInstance();
2Date date = calendar.getTime();
3SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
4String string = simpleDateFormat.format(date);
5
6textViewTime.setText(string);

Klappt das?

Antworten
Matthias Leitner
  • Forum-Beiträge: 5

12.07.2012, 12:22:15 via Website

Ja danke das klappt!

Es wird das richtige ausgegeben!

Antworten
Matthias Leitner
  • Forum-Beiträge: 5

12.07.2012, 12:29:23 via Website

Hab ein wenig herum probiert und hab es jetzt so, dass nur die Uhrzeit im gewünschten Format angezeigt wird.

Aber wie soll ich es nun am Besten machen, dass die Zeit sich aktualisiert?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

12.07.2012, 13:17:21 via Website

Setz einen Timer - entweder einen Java Timer oder nutz den Android AlarmManager.

Die Entscheidung für einen bestimmten Weg liefert die Android Doku:

Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running. For normal timing operations (ticks, timeouts, etc) it is easier and much more efficient to use Handler.

Antworten
Matthias Leitner
  • Forum-Beiträge: 5

12.07.2012, 15:38:30 via Website

Ok dann werd ich es mal mit dem Alarm Manager probieren!

Danke für die Hilfe!

Antworten