[英]How to create a TimePicker from class which do not extends Activity, Android?
[英]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.