Buttons mit aktuellem Datum versehen, aber wie?

  • Hallo!


    Ich arbeite mich gerade in die Android Entwicklung ein und schreibe ein Zeiterfassungs App.
    Dabei kann man Datum- Anfangs- und Endzeit auswählen.


    Also Beispiel nehme ich mal den Datum Dialog:


    Ich habe also:


    Code
    private Button mPickDate;


    Code
    mPickDate = (Button) findViewById(R.id.pickDate);


    und der Dialog:


    Code
    mPickDate.setOnClickListener(new View.OnClickListener() {
            	public void onClick(View v) {
                	showDialog(DATE_DIALOG_ID);
            	}
        	});


    Der Name des Buttons wird ja auch der xml Datei gelesen:

    Code
    <Button android:id="@+id/pickDate"
        	android:layout_width="290px"
        	android:layout_height="wrap_content"
        	android:text="Datum auswählen"
        	android:layout_weight="1"/>


    und zwar hier:

    Code
    mPickDate = (Button) findViewById(R.id.pickDate);


    Soweit hab ich auch alles verstanden.
    Jetzt will ich aber anstatt den statischen Text das aktuelle Datum als Titel des Buttons haben.
    Datum hole ich mit:

    Code
    // get the current date
        	final Calendar c = Calendar.getInstance();
        	mYear = c.get(Calendar.YEAR);
        	mMonth = c.get(Calendar.MONTH);
        	mDay = c.get(Calendar.DAY_OF_MONTH);


    Bis jetzt konnte ich leider noch keine Lösung finden, wäre super wenn da jemand eine Idee hätte!


    Schonmal Danke!
    Gruß Kodak

  • So wie ich das verstanden habe wird der Name des Buttons doch in der xml Datei angegeben.
    Da kann ich doch keine Methode oder ähnliches aufrufen die da das Datum reinschreibt.


    Oder kann man den Buttonnamen irgendwie mit

    Code
    Button b1;
    b1.setText(getDate());


    ersetzen?
    Wenn ja, wie?
    Habe ich nämlich auch schon ausprobiert... leider ohne Erfolg.


    Gruß

  • Doch doch, b1.setText(...) funktioniert prima ;)
    Allerdings musst du erst den Button aus dem Layout holen, sonst bekommst du ne NullpointerException weil du n leeres Objekt mit Text versehen willst.
    dazu machst du zwischen Button b1; und dem setText folgendes:
    b1 = (Button) findViewById(R.id.BUTTONID);

  • Danke! Hat funktioniert...
    Allerdings ist es nun so dass wenn ich die Zeit ändere, sich der Button nicht mit ändert.
    Die Vorgabewerte bleiben also stehen obwohl ich den code ganz oben gelich nach onCreate stehen hab.


    Was muss ich da noch ändern?


    Schonmal Danke!

  • Hättest du den Code dazu?
    Denn so wie du es beschrieben hast, kann ich es nicht deuten.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Also am Anfang starte ich das app und auf dem Button steht zB: 17-1-2011
    Also passt.
    Dann öffne ich den DateDialog und ändere das Datum aber der Titel bleibt bei 17-1-2011.


    Code um den Button mit aktuellem Datum zu bestücken:


    und dann dachte ich mir... ok, wo ist die Stelle die ausgeführt wird nachdem der DatePicker Dialog ausgewählt wurde?


    Aber ich kann auswählen was ich will... es steht immer 17-1-2011 auf dem Button.
    Muss ich da noch was aufrufen um vielleicht die view zu aktualisieren oder so?

  • Aber onDateSet(..) wird sicher ausgeführt? Wie hast du denn das Callback implementiert?
    Und das setzen des Buttons aus dem DatePickerDialog raus wird (vermutlich) nicht gehen, da er da bei findViewById(..) das Layout des Dialogs durchsucht und nicht das deiner Activity. Du musst also dem DatePickerDialog entweder ne Referenz auf deine Activity oder besser den Button selber mitgeben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!