0

我正在尝试从不扩展 Activity 类的类创建 DatePicker 对话框。我需要一个名为 EnterDate 的类中的 DatePicker,该类具有包含活动上下文的上下文属性。

WEB 上的 DatePicker 的所有示例都是用 Activity 类编写的基本示例,这就是它们让我感到困惑的原因。

我想要在低于 3.0 的 Android 上运行良好的日期选择器。我不使用 XML 布局。

所以基本上我需要建议在哪里放置 onCreateDialog() ,如何检索选择的时间等。

我有一个按钮,它有 onClickListener() 用于调用 DatePicker。

一小时前,我对 TimePicker 提出了同样的问题并得到了这个答案: 如何从不扩展 Activity 的类中创建 TimePicker,Android?

我认为该解决方案只需要稍作修改即可像 DatePicker 一样工作。

肿瘤坏死因子

4

2 回答 2

1

修改类

public class MyDatePicker {
DatePickerDialog mDatePickerDialog;


public interface onDateSet {
    public void onDate(DatePicker view, int year, int monthOfYear,
            int dayOfMonth);
}

onDateSet mOnDateSet;

public void setDateListener(onDateSet mOnDateSet) {
    this.mOnDateSet = mOnDateSet;
}
public MyDatePicker(Context ctx) {
    mDatePickerDialog = new DatePickerDialog(ctx, new OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            mOnDateSet.onDate(view, year, monthOfYear, dayOfMonth);

        }
    }, 2000, 1, 1);
}

public void show() {
    mDatePickerDialog.show();
}

和..

 public void ShowDatePicker() {
        MyDatePicker myTimePicker = new MyDatePicker(this);
        myTimePicker.show();
    myTimePicker.setDateListener(new onDateSet() {

        @Override
        public void onDate(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            Toast.makeText(MainActivity.this,
                    "date is " + year + ":" + monthOfYear+":"+dayOfMonth,
                    Toast.LENGTH_LONG).show();

        }
    });
}
于 2012-10-09T12:32:24.913 回答
0

您不需要活动来创建和显示对话框。您可以使用辅助类创建带有回调和初始化数据的对话框DatePickerDialog.Builder,然后调用show()此构建器。

这仅在您处于 UI 线程中时才有效。

于 2012-10-09T12:06:23.300 回答