0

アプリケーションに日付ピッカー ダイアログが必要です。まず、日付ピッカー ダイアログ ボックスを開き、日付を選択します。次回 Date pickerDialog を開くときはいつでも、日付ピッカーの日付はデバイスの現在の日付でなければなりません。ただし、ダイアログで最後に選択した日付が表示されます。コードの設定を手伝ってください。これが私のコードです。

@Override
protected Dialog onCreateDialog(int id)
{
    switch (id)
    {
        case DATE_DIALOG_ID:

        Date d=new Date();
        Calendar c=Calendar.getInstance();
        c.setTimeZone(tz);          
        c.setTime(d);
        d=c.getTime();

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int date = c.get(Calendar.DATE);

        DatePickerDialog datePicker 
            = new DatePickerDialog(this, datePickerListener, year, month, date);      

        return datePicker;          
    }
    return super.onCreateDialog(id);
}

private DatePickerDialog.OnDateSetListener datePickerListener 
            = new DatePickerDialog.OnDateSetListener()
{
    // when dialog box is closed, below method will be called.
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay)
    {
        cors_year = selectedYear;
        cors_month = selectedMonth;
        cors_date = selectedDay;

        getDate("calledfromDialog");
        displaySunTime();
        displayChoghadiya("Day");
        displayTime(3, 1);
        dayButtonClicked();
        selected_DAY_NIGHT="Day";
    }
};
4

1 に答える 1

2

ドキュメントによると、onCreateDialogはv13で非推奨になっていることに注意してください。

代わりに、FragmentManagerで新しいDialogFragmentクラスを使用してください。これは、Android互換パッケージを介して古いプラットフォームでも利用できます。

このチュートリアルと一緒に使用するもの

ただし、DatePickerDialogを使用したい場合は、次のようなコードを使用できます。

protected void onPrepareDialog (int id, Dialog dialog)
{
    DatePickerDialog datePickerDialog = (DatePickerDialog) dialog;
    // Get the current date
    datePickerDialog.updateDate(year, month, day);
}

これは、Androidがダイアログを再利用するためにダイアログごとに1回だけonCreateDialogを呼び出すためです。onPrepareDialogは、ダイアログが表示される前にダイアログの状態を適切に設定するために呼び出されます。

于 2013-03-08T18:50:57.053 に答える