簡體   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