1

我正在使用 API 级别 10,我不想仅使用支持库来实现 DatePicker,因此我使用以下方法来创建日期对话框。我以前使用过一个 DatePicker,它工作得很好。我只是看不出这里有什么问题。

我有两个日期对话框来选择各个 OnClickListeners 调用的日期。有人可以帮忙吗?谢谢你。

// 这是在 onCreate

 ImageView fromCalendar = (ImageView) findViewById(R.id.from_calendar);
ImageView toCalendar = (ImageView) findViewById(R.id.to_calendar);


fromCalendar.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        showDialog(FROM_DATE_DIALOG);

    }
});

toCalendar.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        showDialog(TO_DATE_DIALOG);

    }
});


 private DatePickerDialog.OnDateSetListener toDateSetListener = new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {

        mYear = year;
        mMonth = monthOfYear;
        mDay = dayOfMonth;
        Log.e("mYear", "" + year + " mMonth:" + mMonth + " mDay" + mDay);
        String date = updateDisplay(true);

        toDate.setText(date);
    }
};

//在onCreate之外

private DatePickerDialog.OnDateSetListener fromDateSetListener = new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {

        mYear = year;
        mMonth = monthOfYear;
        mDay = dayOfMonth;
        Log.e("mYear", "" + year + " mMonth:" + mMonth + " mDay" + mDay);
        String date = updateDisplay(true);

        fromDate.setText(date);
    }
};



protected Dialog onCreateDialog(int id) {
    switch(id) {

    case FROM_DATE_DIALOG:
        Log.e("onCreateDialog::mYear", "" + mYear + " mMonth:" + mMonth
                + " mDay" + mDay);
        return new DatePickerDialog(this, fromDateSetListener, mYear, mMonth,
                mDay);


    case TO_DATE_DIALOG:
        Log.e("onCreateDialog::mYear", "" + mYear + " mMonth:" + mMonth
                + " mDay" + mDay);
        return new DatePickerDialog(this, toDateSetListener, mYear, mMonth,
                mDay);
    }
    return null; 
}
4

1 回答 1

1

对不起,这是重复的!

java.lang.IllegalArgumentException: 当前应该 >= start 和 <= end

我只需要初始化 mYear、mMonth 和 mDay。

于 2012-07-30T16:02:26.563 回答