web-dev-qa-db-ja.com

Android日付ピッカーのカレンダービュー

最初のアプリを書いていますが、DatePickerについて質問があります。

私のアプリでは、ユーザーが日付を入力する必要があります。最もユーザーフレンドリーな方法は、現在の月をカレンダーのグリッドのように表示するカレンダーのようなウィジェットをポップアップすることです-このようなもの:

enter image description here

DatePickerインターフェースの代わりにそれを使用したい-Month、Day、Yearの各フィールドがあり、それぞれに増減ボタンがあります。

このタイプの機能は、任意のAndroidウィジェットまたはビューに組み込まれていますか、またはこれを行うために独自のカスタムコンポーネントを設計する必要がありますか?このタイプのUIモバイル以外のアプリやWebページで頻繁に使用されます。

ありがとう!

32
ndtrek07

このタイプの機能は、任意のAndroidウィジェットまたはビューに組み込まれていますか、またはこれを行うために独自のカスタムコンポーネントを設計する必要がありますか?

Android SDK、申し訳ありません。説明するウィジェットはタッチスクリーンには小さすぎます。より大きなものを実装できます(カレンダーアプリをご覧ください)そのためにあなた自身のもの。

11
CommonsWare

さて、2014年には、ネイティブの DatePicker(link) にも小さなホロが含まれています CalendarView(link)

次の設定により、スピナーとCalendarViewの両方、またはそれらの一方のみを表示するかどうかを選択できます。

  • Android:calendarViewShown
  • Android:spinnersShown

APIレベル16+だけなのか、アイスクリームサンドイッチに含まれているのかはわかりませんが、そこにあります。これはデフォルトでどのように見えるかです:

enter image description here


さらに、APIレベル21以降には、次のような新しいマテリアルテーマDatePickerがあります。

enter image description here

これはAPI 21+のデフォルトであり、スピナーはもうありませんが、設定することでHoloに切り替えることができます

Android:datePickerMode="spinner"

xMLで。

18
Marcel Bro

API 11がネイティブにあります: CalendarView

enter image description here

このビューは、API 7以降 HoloEverywhere にあります。

12
Brais Gabin
7
oae

http://caughtinthemobileweb.wordpress.com/2011/06/20/how-to-implement-calendarview-in-Android/ で適切な実装が見つかりました


また、APIレベル11(Android 3.0)以降、CalendarViewのネイティブ実装がありました http://developer.Android.com/reference/Android/widget/CalendarView.html

4
Gaurav Vashisth

私は最近、これをモジュラーアプリとして作成しました。 サンプルコードドキュメントスクリーンショット 、および 。apkダウンロード があります。

4
kostmo

このコンポーネントを使用してみてください: https://github.com/truefedex/Android-date-pickerenter image description here

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

このライブラリを日付選択に使用できます

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

0
Chayon Ahmed