it-swarm.com.de

Android-Kalenderansicht für Datumsauswahl

Ich schreibe meine erste App und habe eine Frage zu DatePicker.

Für meine App muss der Benutzer ein Datum eingeben. Die benutzerfreundlichste Methode wäre, ein kalenderartiges Widget aufzurufen, das den aktuellen Monat wie ein Kalenderraster anzeigt - etwa wie folgt:

enter image description here

Ich möchte dies anstelle der DatePicker-Schnittstelle verwenden, die Felder für Monat, Tag und Jahr enthält, die jeweils mit einem Auf- und Ab-Button zum Inkrementieren/Dekrementieren versehen sind.

Ist diese Art von Funktionalität in ein Android-Widget oder eine Android-Ansicht integriert, oder müsste ich dafür meine eigene benutzerdefinierte Komponente entwerfen? Ich dachte mir, dass dies schon existieren würde, da ich sehe, wie viel diese Art von Benutzeroberfläche in nicht-mobilen Apps und Webseiten so häufig verwendet wird.

Vielen Dank!

31
ndtrek07

Ist diese Art von Funktionalität in ein Android-Widget oder eine Android-Ansicht integriert, oder müsste ich dazu meine eigene benutzerdefinierte Komponente entwerfen?

Es gibt keine Komponente dafür im Android SDK, sorry. Das von Ihnen dargestellte Widget ist für einen Touchscreen zu klein. Sie können etwas Größeres implementieren (siehe Kalender-App), aber Sie sind weitgehend selbstständig.

11
CommonsWare

Im Jahr 2014 enthält sogar die native DatePicker (link) ein kleines Holo, das CalendarView (link) zeigt, um einen Tag im Monat auszuwählen.

Sie können wählen, ob beide Spinner und CalendarView oder nur einer von ihnen angezeigt wird, indem Sie Folgendes einstellen:

  • Android:calendarViewShown
  • Android:spinnersShown

Ich bin mir nicht sicher, ob es nur API-Level 16+ ist oder ob es sich überhaupt um ein Eissandwich handelt, aber es ist da. So sieht es standardmäßig aus:

enter image description here


Darüber hinaus gibt es auf API-Ebene 21 und höher ein neues Material, DatePicker, das wie folgt aussieht:

enter image description here

Dies ist standardmäßig in API 21+ und es gibt keine Spinner mehr, aber Sie können durch Einstellen wieder zum Holo wechseln 

Android:datePickerMode="spinner"

in Ihrem XML.

17
Marcel Bro

Seit der API 11 gibt es nativ: CalendarView

enter image description here

Diese Ansicht befindet sich in HoloEverywhere seit API 7.

12
Brais Gabin
7
oae

Fand eine gute Implementierung in http://caughtinthemobileweb.wordpress.com/2011/06/20/how-to-implement-calendarview-in-Android/


Seit API Level 11 (Android 3.0) gibt es auch die native Implementierung von CalendarView http://developer.Android.com/reference/Android/widget/CalendarView.html

4
Gaurav Vashisth

Ich habe vor kurzem genau das als modulare App geschrieben. Hier sind einige Beispielcode , Dokumentation mit Screenshots und .apk Download .

4
kostmo

Versuchen Sie diese Komponente zu verwenden: https://github.com/truefedex/Android-date-picker enter image description here

Wenn Sie es als Popup verwenden möchten, schreiben Sie auf Ihren Onclick:

if (calendarPopup == null) {
  calendarPopup = new PopupWindow(getContext());
  CalendarPickerView calendarView = new CalendarPickerView(getContext());
  CalendarNumbersView calendar = (CalendarNumbersView) calendarView.findViewById(com.phlox.datepick.R.id.calendar);
  calendar.setShowDayNames(false);
  calendarView.setListener(onDateSelectionListener);
  calendarPopup.setContentView(calendarView);
  calendarPopup.setWindowLayoutMode(
        MeasureSpec.makeMeasureSpec(llCalendar.getWidth(), MeasureSpec.EXACTLY),
        ViewGroup.LayoutParams.WRAP_CONTENT);
  calendarPopup.setHeight(1);
  calendarPopup.setWidth(llCalendar.getWidth());
  calendarPopup.setOutsideTouchable(true);
}
calendarPopup.showAsDropDown(llCalendar);
1
Fedir Tsapana

sie können diese Bibliothek zur Datumsauswahl verwenden

https://github.com/square/Android-times-square/

0
Chayon Ahmed