web-dev-qa-db-ja.com

プログラムでdatePickerMode = "spinner"を設定する方法は?

プログラムでDatePickerを作成する必要があります。そして、私はxmlレイアウトを使用できません。私はxml _datePickerMode="spinner"_にスピナーを設定していることを知っているので、datePicker.setSpinnersShown(true);datePicker.setCalendarViewShown(false)を使用できます。コンストラクタにAttributeSetを追加してみますが、使用方法がわかりませんそれ。誰かがお手伝いできますか?スピナーモードでDataPickerを作成する方法

ありがとうございました

10
Lukáš Šálek

私はすでにこの問題を説明する投稿を見つけました:

私は次の投稿で説明を見つけました(これは私のものと非常によく似た問題を説明しています):

Android Material Design Inline Datepickerの問題

実際、setCalendarViewShown(false)とsetSpinnersShown(true)は、最新バージョンでは動作していないようです。

このような明示的なXML属性を使用する必要がありますAndroid:datePickerMode = "spinner"

問題は、XMLレイアウトなしのDialogFragment(日付ピッカーダイアログのみ)を使用していることです。そのため、XML属性を設定できません。

解決策は、要求された属性を使用して、XMLレイアウトファイルで専用のカスタムダイアログを作成することです。

FROM: プログラムでDatePickerDialogにスピナースタイルを使用させることはできません

それが役に立てば幸い

8
piotrek1543

プログラムで設定したい場合は、以下のコードを使用できますが、このコードが機能しているかどうかは確認していません。他の方法でお手伝いできるかどうかお知らせください。

datepickerDialog_object.getDatePicker().setSpinnersShown(true);
datepickerDialog_object.getDatePicker().setCalendarViewShown(false);
0
Anshul Verma

プログラムでDatePickerModeスピナーモードを設定するのに役立ちます。

Theme_Holo_Dialog_MinWidth is deprecated

 val dpDialog = DatePickerDialog(activity!!,
            Android.R.style.Theme_Holo_Dialog_MinWidth,listener,
            year, month, day)
        dpDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        dpDialog.show()
0
Zulqarnain