我正在尝试从不扩展Activity类的类创建DatePicker对话框。我需要在名为EnterDate的类中使用DatePicker,该类具有包含Activity Context的Context属性。
WEB上的所有DatePicker示例都是用Activity类编写的基本示例,这就是为什么它们让我感到困惑。
我希望日期选择器在Android上的效果低于3.0。我不使用XML布局。
所以基本上我需要建议放在onCreateDialog()的位置,如何检索选择的时间等等。
我的Button有onClickListener()来调用DatePicker。
一小时前我为TimePicker问了同样的问题并得到了这个答案: How to create a TimePicker from class which do not extends Activity, Android?
我认为该解决方案只需要稍微修改即可像DatePicker一样工作..
TNX
答案 0 :(得分: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();
}
});
}
答案 1 :(得分:0)
您无需创建和显示对话框的活动。您可以使用辅助类DatePickerDialog.Builder
创建带有回调和init数据的Dialog,然后为此构建器调用show()
。
仅当您处于UI线程时才会起作用。