33

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

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

ここに画像の説明を入力してください

これをインターフェイスの代わりに使用したいと思いDatePickerます。月、日、年の各フィールドには、インクリメント/デクリメントするための上下ボタンがあります。

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

ありがとう!

4

8 に答える 8

19

現在、2014年には、ネイティブDatePicker(リンク)でさえ、月の日を選択するための小さなホロルック(リンク)が含まれていCalendarViewます

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

  • android:calendarViewShown
  • android:spinnersShown

APIレベルが16以上なのか、それともアイスクリームサンドイッチにあるのかはわかりませんが、そこにあります。デフォルトでは次のようになります。

ここに画像の説明を入力してください


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

ここに画像の説明を入力してください

これはAPI21以降のデフォルトであり、スピナーはもうありませんが、設定することでHoloに戻すことができます。

android:datePickerMode="spinner"

XMLで。

于 2014-03-05T19:39:20.980 に答える
12

API 11以降、ネイティブ:CalendarView

ここに画像の説明を入力してください

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

于 2012-07-30T14:26:32.297 に答える
11

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

申し訳ありませんが、AndroidSDKにはそのためのコンポーネントはありません。あなたが説明するウィジェットは、タッチスクリーンには小さすぎます。より大きなものを実装することもできますが(カレンダーアプリを参照)、それは主に自分で行うことができます。

于 2010-09-14T22:22:15.980 に答える
7

私がこれまでに見つけたもの:

于 2011-03-26T12:02:38.960 に答える
4

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

于 2010-12-10T06:49:08.747 に答える
4

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

于 2012-05-31T08:45:22.057 に答える
2

このコンポーネントを使用してみてください: 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);
于 2015-09-06T22:49:18.890 に答える
0

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

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

于 2016-02-17T09:17:43.747 に答える