最初のアプリを書いていますが、DatePicker
について質問があります。
私のアプリでは、ユーザーが日付を入力する必要があります。最もユーザーフレンドリーな方法は、現在の月をカレンダーのグリッドのように表示するカレンダーのようなウィジェットをポップアップすることです-このようなもの:
DatePicker
インターフェースの代わりにそれを使用したい-Month、Day、Yearの各フィールドがあり、それぞれに増減ボタンがあります。
このタイプの機能は、任意のAndroidウィジェットまたはビューに組み込まれていますか、またはこれを行うために独自のカスタムコンポーネントを設計する必要がありますか?このタイプのUIモバイル以外のアプリやWebページで頻繁に使用されます。
ありがとう!
このタイプの機能は、任意のAndroidウィジェットまたはビューに組み込まれていますか、またはこれを行うために独自のカスタムコンポーネントを設計する必要がありますか?
Android SDK、申し訳ありません。説明するウィジェットはタッチスクリーンには小さすぎます。より大きなものを実装できます(カレンダーアプリをご覧ください)そのためにあなた自身のもの。
さて、2014年には、ネイティブの DatePicker
(link) にも小さなホロが含まれています CalendarView
(link) 。
次の設定により、スピナーとCalendarView
の両方、またはそれらの一方のみを表示するかどうかを選択できます。
Android:calendarViewShown
Android:spinnersShown
APIレベル16+だけなのか、アイスクリームサンドイッチに含まれているのかはわかりませんが、そこにあります。これはデフォルトでどのように見えるかです:
さらに、APIレベル21以降には、次のような新しいマテリアルテーマDatePicker
があります。
これはAPI 21+のデフォルトであり、スピナーはもうありませんが、設定することでHoloに切り替えることができます
Android:datePickerMode="spinner"
xMLで。
API 11がネイティブにあります: CalendarView
このビューは、API 7以降 HoloEverywhere にあります。
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
私は最近、これをモジュラーアプリとして作成しました。 サンプルコード 、 ドキュメントスクリーンショット 、および 。apkダウンロード があります。
このコンポーネントを使用してみてください: https://github.com/truefedex/Android-date-picker
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);
このライブラリを日付選択に使用できます