2012-05-08 17 views
9

私はandroid.app.DatePickerDialogをポップアップさせるアクティビティを持っています。DatePickerDialogからどのようにDatePickerを取得しますか?

DatePickerDialog dialog = new DatePickerDialog(this, startDateSetListener, start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DATE)); 

私はminとmaxの日付を設定することができるようにDatePickerDialogから日付ピッカービューで取得したいです。 APIリファレンスには、メソッドgetDatePickerがあり、API 1からそこにあったが、無効であると、私のIDEはそれを気に入らないと言います。

DatePicker picker = dialog.getDatePicker(); 

いずれかの方法で作成されたものをAPIまたは私は最小/最大日付を編集する日付ピッカーを得ることができる方法を知っている

「方法getDatePickerは、()タイプDatePickerDialogについて定義されていませんか」?

私はAPI 7、プラットフォーム2.1を使用しています。

"公共の日付ピッカーgetDatePicker()以降:APIレベル11"

答えて

23

そのgetterメソッドのみがハニカムで利用可能であり、かつ上記にもかかわらず(DMONが正しく指摘したように)、あなたはまだかなり簡単にリフレクションを使用してDatePickerDialogによってカプセル化DatePickerオブジェクトへのアクセスを得ることができます。あなたが内部DatePickerオブジェクトへの参照を持って、あなたはあなた自身の好みに合わせてそれを変更することができるはず、この時点から

DatePickerDialog dialog = ... // create dialog 
Field mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker"); 
mDatePickerField.setAccessible(true); 
DatePicker mDatePickerInstance = (DatePicker) mDatePickerField.get(dialog); 

:それはこのような何かを見てみましょう。これをブラウザに直接入力すると、間違ったタイプミスに気をつけてください。

+3

良い答え。残念ながら、getとset max on date pickerもAPI 11です... – stacybro

+0

Bummer、私はまだそれらを見ていませんでした。残念ながら、2.1-update1の 'DatePicker'のソースをブラウズしている間、最小/最大の日付ロジックは完全に存在しません。私は、あなたがそれを扱う 'DatePicker'の独自拡張を作成し、それを' DatePickerDialog'に挿入する(またはカスタムダイアログを使用する)ことができると思いますが、それはかなり軽微な作業のように思えます。 –

3

あなたが読み違え、それはAPI 11以降のみ利用可能です。 Look closely

+0

Ah crud。ありがとう! – stacybro

関連する問題