Android Date Picker Beispiel
In Android können Sie die Klasse "http://developer.android.com/reference/android/widget/DatePicker.html[android.widget.DatePicker]" verwenden, um eine Datumsauswahlkomponente für die Auswahl von Tag, Monat und Jahr in einer zu rendern vordefinierte Benutzeroberfläche.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Datumsauswahlkomponente auf der aktuellen Seite überandroid.widget.DatePicker und im Dialogfeld überandroid.app.DatePickerDialog rendern. Außerdem zeigen wir Ihnen, wie Sie ein Datum in der Datumsauswahlkomponente festlegen.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. Datumsauswahl
Öffnen Sie die Datei "res/layout/main.xml", fügen Sie zur Demonstration Datumsauswahl, Beschriftung und Schaltfläche hinzu.
Datei: res / layout / main.xml
P.S The “DatePickerDialog
” is declare in code, not XML.
2. Code Code
Lesen Sie den Kommentar des Codes, er sollte selbsterklärend sein.
Datei: MyAndroidAppActivity.java
package com.example.android; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class MyAndroidAppActivity extends Activity { private TextView tvDisplayDate; private DatePicker dpResult; private Button btnChangeDate; private int year; private int month; private int day; static final int DATE_DIALOG_ID = 999; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setCurrentDateOnView(); addListenerOnButton(); } // display current date public void setCurrentDateOnView() { tvDisplayDate = (TextView) findViewById(R.id.tvDate); dpResult = (DatePicker) findViewById(R.id.dpResult); final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); // set current date into textview tvDisplayDate.setText(new StringBuilder() // Month is 0 based, just add 1 .append(month + 1).append("-").append(day).append("-") .append(year).append(" ")); // set current date into datepicker dpResult.init(year, month, day, null); } public void addListenerOnButton() { btnChangeDate = (Button) findViewById(R.id.btnChangeDate); btnChangeDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: // set date picker as current date return new DatePickerDialog(this, datePickerListener, year, month,day); } return null; } private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { // when dialog box is closed, below method will be called. public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = selectedDay; // set selected date into textview tvDisplayDate.setText(new StringBuilder().append(month + 1) .append("-").append(day).append("-").append(year) .append(" ")); // set selected date into datepicker also dpResult.init(year, month, day, null); } }; }
P.S The “DatePickerDialog” example above, is referenced from Google Android date picker example mit geringfügigen Änderungen.
3. Demo
Führen Sie die Anwendung aus.
1. Ergebnis, "Datumsauswahl" und "Textansicht" werden auf das aktuelle Datum gesetzt.
2. Klicken Sie auf die Schaltfläche "Datum ändern", um eine Datumsauswahlkomponente in einem Dialogfeld überDatePickerDialog
aufzurufen.
3. Sowohl die Datumsauswahl als auch die Textansicht werden mit dem ausgewählten Datum aktualisiert.
Quellcode herunterladen
Laden Sie es herunter -Android-DatePicker-Example.zip (16 KB)