繁体   English   中英

如何从不扩展Activity,Android的类中创建DatePicker?

[英]How to create a DatePicker from class which do not extends Activity, Android?

我正在尝试从不扩展Activity类的类创建DatePicker对话框。 我在名为EnterDate的类中需要DatePicker,该类的Context属性包含Activity Context。

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

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

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

我有Button,它具有用于调用DatePicker的onClickListener()。

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

我认为该解决方案只需要进行较小的修改即可像DatePicker一样工作。

特纳克斯

修改类

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();

        }
    });
}

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

仅当您在UI线程中时,这才有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM