1

次のように日付ピッカーを実装しました。

private void updateDisplay() {
    String str_date = "";
    if ((Month + 1) >= 10) {
        if (Day < 10) {
            str_date = Year + "-" + (Month + 1) + "-0" + Day;
        } else {
            str_date = Year + "-" + (Month + 1) + "-" + Day;
        }
    } else {
        if (Day < 10) {
            str_date = Year + "-0" + (Month + 1) + "-0" + Day;
        } else {
            str_date = Year + "-0" + (Month + 1) + "-" + Day;
        }

    }
    date.setText("" + str_date);
}

protected void onPrepareDialog(int id, Dialog dialog) {
    switch (id) {
    case DATE_DIALOG_ID:
        ((DatePickerDialog) dialog).updateDate(Year, Month, Day);
        break;
    }
}

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(viewLoad.getContext(),
                mDateSetListener, Year, Month, Day);
    }
    return null;
}

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        Year = year;
        Month = monthOfYear;
        Day = dayOfMonth;
        updateDisplay();
    }
};

ボタンのコードセグメントは次のとおりです。

@Override
public void onClick(View view) {
    switch (view.getId()) {
    case R.id.btnDate:
        showDialog(DATE_DIALOG_ID);
        break;

これはうまくいきます。問題は、フラグメントに日付ピッカーを実装する必要があることです。誰でもその方法を説明できますか。

編集されたコード

 private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        Year = year;
        Month = monthOfYear;
        Day = dayOfMonth;
        updateDisplay();
    }
};

事前にサンクス。

4

2 に答える 2

0

私の知る限り、showDialog()フラグメントでは使用できません。また、非推奨です。を使用しDialogFragmentます。必要に応じて、このチュートリアルから学んで ください http://www.kylebeal.com/2011/11/android-datepickerdialog-and-the-dialogfragment/

于 2013-11-01T03:42:23.083 に答える