Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:无法将当前日期每次设置为日期选择器_Android_Date_Datepicker_Android Simon Datepicker - Fatal编程技术网

Android:无法将当前日期每次设置为日期选择器

Android:无法将当前日期每次设置为日期选择器,android,date,datepicker,android-simon-datepicker,Android,Date,Datepicker,Android Simon Datepicker,我正在使用DatePicker向应用程序中的用户显示日期。 但是,我使用onCreateDialog方法向用户显示日期选择器,设置整数变量如下: 静态最终整数日期对话框\u ID=999 然后我调用下面的方法 showDialog(日期对话框ID) 第一次使用当前日期初始化日期选择器。到目前为止一切都很好 @Override protected Dialog onCreateDialog(int id) { Calendar c = Calendar.getInstanc

我正在使用
DatePicker
向应用程序中的用户显示日期。 但是,我使用onCreateDialog方法向用户显示日期选择器,设置整数变量如下: 静态最终整数日期对话框\u ID=999 然后我调用下面的方法 showDialog(日期对话框ID)

第一次使用当前日期初始化日期选择器。到目前为止一切都很好

@Override
    protected Dialog onCreateDialog(int id) {
        Calendar c = Calendar.getInstance();
        final int myear = c.get(Calendar.YEAR);
        final int mmonth = c.get(Calendar.MONTH);
        final int mday = c.get(Calendar.DAY_OF_MONTH);
        Log.d("Executed", "hihihihihihihi");
        switch (id) {
            case DATE_DIALOG_ID:
                // set date picker as current date
                DatePickerDialog _date = new DatePickerDialog(this, AlertDialog.THEME_HOLO_LIGHT, datePickerListener, myear, mmonth,
                        mday) {



                    @Override
                    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        if (year < myear)
                            view.updateDate(myear, mmonth, mday);

                        if (monthOfYear < mmonth && year == myear)
                            view.updateDate(myear, mmonth, mday);

                        if (dayOfMonth < mday && year == myear && monthOfYear == mmonth)
                            view.updateDate(myear, mmonth, mday);

                    }

                };
                return _date;

        }
        return null;
    }
@覆盖
受保护的对话框onCreateDialog(int id){
Calendar c=Calendar.getInstance();
最终整数myear=c.get(日历年);
最终整数mm=c.get(日历月);
final int mday=c.get(日历日/月);
Log.d(“已执行”、“HIHIHI”);
开关(id){
案例日期\u对话框\u ID:
//将日期选择器设置为当前日期
DatePickerDialog\u date=新建DatePickerDialog(此,AlertDialog.THEME\u HOLO\u LIGHT,datePickerListener,myear,Amnth,
(星期日){
@凌驾
公共无效onDateChanged(日期选择器视图,整数年,整数月,整数月){
如果(年<年)
view.updateDate(myear,mmonth,mday);
如果(月日<月日<年==myear)
view.updateDate(myear,mmonth,mday);
如果(月日<日和年==月日和月日==月日)
view.updateDate(myear,mmonth,mday);
}
};
返回日期;
}
返回null;
}

但问题是,当我选择当前日期以外的日期时,它会起作用。但当我再次尝试选择日期时,默认情况下,日期选择器会显示我上次选择的日期。每次打开日期选择器时,我无法设置当前日期,因此如何使用日期选择器

在活动中添加以下方法和类:

public void showDatePickerDialog() {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
}

public static class DatePickerFragment extends DialogFragment
                            implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
    }
}
私人日历c;
@凌驾
onCreate(){
c=Calendar.getInstance();
}
@凌驾
受保护的对话框onCreateDialog(int id){
最终整数myear=c.get(日历年);
最终整数mm=c.get(日历月);
final int mday=c.get(日历日/月);
Log.d(“已执行”、“HIHIHI”);
开关(id){
案例日期\u对话框\u ID:
//将日期选择器设置为当前日期
DatePickerDialog\u date=新建DatePickerDialog(此,AlertDialog.THEME\u HOLO\u LIGHT,datePickerListener,myear,Amnth,
(星期日){
@凌驾
公共无效onDateChanged(日期选择器视图,整数年,整数月,整数月){
///在这里,您可以将更新日期设置为日历实例。因此,每当您再次打开它时,它将显示上次更新的日期
c、 集合(年,(月-1),月-日);
如果(年<年)
view.updateDate(myear,mmonth,mday);
如果(月日<月日<年==myear)
view.updateDate(myear,mmonth,mday);
如果(月日<日和年==月日和月日==月日)
view.updateDate(myear,mmonth,mday);
}
};
返回日期;
}
返回null;
}
希望它能帮助你

(英语不是我的第一语言,如有必要请更正)

我认为你的病情检查是错误的

if (year < myear)
   view.updateDate(myear, mmonth, mday);

if (monthOfYear < mmonth && year == myear)
    view.updateDate(myear, mmonth, mday);

if (dayOfMonth < mday && year == myear && monthOfYear == mmonth)
    view.updateDate(myear, mmonth, mday);
if(年份
例如:默认情况下,您将当前日期设置为今天(2016年2月13日)

第1步:

在datePicker中,默认日期为2016年2月13日。现在您选择前一天(2016年12月2日)

现在日期选择器值变为2016年12月2日

在这种情况下,

如果(年份 如果(monthOfYear 如果(dayOfMonth 步骤2

现在,您再次将日期选择器日期更改为今天的日期(2016年2月13日)

在这种情况下:

如果(年份 如果(monthOfYear
如果(dayOfMonth-这种情况变为false,因为dayOfMonth和mday是相同的。但您正在检查较早的日期。

但在我的活动中,Chintan soni对行newFragment.show(getSupportFragmentManager(),“datePicker”)给出了错误;这无法解决方法getSupportFragmentManager()@Dhiraj请确保您是在活动中而不是在片段中编写代码。尝试您的解决方案将让您了解我的进度尝试将您的解决方案置于我的主要任务中由于周末,我无法告诉您其工作状态,兄弟。。。!!!!!!!!!!你查过最新的答案了吗?我在几分钟前更新了我的答案。请检查一下,让我知道,它是否有效!当我选择日期时,当我试图更改日期时,按钮立即显示为文本,但不显示当前日期,而是显示以前选择的日期
if (year < myear)
   view.updateDate(myear, mmonth, mday);

if (monthOfYear < mmonth && year == myear)
    view.updateDate(myear, mmonth, mday);

if (dayOfMonth < mday && year == myear && monthOfYear == mmonth)
    view.updateDate(myear, mmonth, mday);