0

昔、カスタムの日時ピッカー コントロールを開発しました。このカスタム ピッカー コントロールは、LinearLayout クラスから継承して開発され、設計時にプロパティを設定するための「declare-styleable」属性、イベントをシミュレートするための一連のインターフェイス、最後に効果を再生して管理するための大量のコードなどの機能を備えています。日時ビジネス ロジック。

ここで、カスタム コントロールにボタンを押して、DatePickerDialog と TimePickerDialog を表示する必要があります。Androidナレッジベースで検索しましたが、これらのダイアログを表示するために見つけた唯一の方法は、Developer's DatePicker Guideです。

私のコントロールは LinearLayout から直接継承しているため、onCreateDialog() メソッドをオーバーライドしてダイアログを提供することはできません。これは、LinearLayout にこのメソッドがないためです! 親アクティビティへの参照なしでカスタム コントロールにこれらのダイアログを表示するにはどうすればよいですか? 実際には、ダイアログをロードして起動するコードがカスタム コントロールに一度定義されているため (あなたがMessageBoxes を表示する必要がある場合は、単純な .NET コントロールで行います [MessageBox.Show() は Form インスタンスを必要としません])...

どうすればそれを達成できますか?前もって感謝します...

4

1 に答える 1

3

Activity.showDialog()、onCreateDialog() などを使用する代わりに; Dialog.show() を使用するだけです。

Calendar calendar = Calendar.getInstance();
mDialog = new DatePickerDialog(context, onDateSetListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
mDialog.show();

ボタンの onClickListener 内で、好きなように変更mDialogしてから を呼び出すことができますmDialog.show()

于 2012-05-25T18:56:12.230 に答える