Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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
Java 如何在Android中显示从当前日期起仅一年的日历?_Java_Android_Android Datepicker_Android Date_Android Dateutils - Fatal编程技术网

Java 如何在Android中显示从当前日期起仅一年的日历?

Java 如何在Android中显示从当前日期起仅一年的日历?,java,android,android-datepicker,android-date,android-dateutils,Java,Android,Android Datepicker,Android Date,Android Dateutils,我希望日历只向用户显示一年的日期,并在过去禁用其余日期。它工作正常。但现在我希望进行设置,以便用户只能从当前日期选择一年日历。这是我的代码。请向我建议更改 textView1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generate

我希望日历只向用户显示一年的日期,并在过去禁用其余日期。它工作正常。但现在我希望进行设置,以便用户只能从当前日期选择一年日历。这是我的代码。请向我建议更改

textView1.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    showDialog(DATE_DIALOG_ID);

                }
            });


    protected Dialog onCreateDialog(int id) {
        final Calendar now = Calendar.getInstance();

        switch (id) {
        case DATE_DIALOG_ID:
            // set date picker as current date
            DatePickerDialog _date =   new DatePickerDialog(this, date,myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)){
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
                {   
                    if (year < now.get(Calendar.YEAR))

                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));

                    if (monthOfYear < now.get(Calendar.MONTH) && year == now.get(Calendar.YEAR))
                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));

                    if (dayOfMonth < now.get(Calendar.DAY_OF_MONTH) && year == now.get(Calendar.YEAR) && 
                            monthOfYear == now.get(Calendar.MONTH))
                        view.updateDate(myCalendar
                                .get(Calendar.YEAR), myCalendar
                                .get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
                        }
            };
            return _date;
        }
        return null;
    }
textView1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
showDialog(日期对话框ID);
}
});
受保护的对话框onCreateDialog(int id){
final Calendar now=Calendar.getInstance();
开关(id){
案例日期\u对话框\u ID:
//将日期选择器设置为当前日期
DatePickerDialog\u date=新的DatePickerDialog(此,日期,我的日历
.get(日历.年),myCalendar.get(日历.月),
myCalendar.get(Calendar.DAY\u OF_MONTH)){
@凌驾
公共无效onDateChanged(日期选择器视图,整数年,整数月,整数月)
{   
如果(年<现在获取(日历年))
view.updateDate(我的日历
.get(Calendar.YEAR),myCalendar
.get(Calendar.MONTH)、myCalendar.get(Calendar.DAY/u月));
if(monthOfYear
尝试如下创建日历,而不是调用calender.getInstance()


日历minCal=新的格里高利安日历(2013年,日历1月1日)

获取当前日期。然后将年份值增加1。然后使用setMaxDate函数,如问题所示。

日期选择器上使用
setMinDate()
setMaxDate()
。您可以使用
getDatePicker()
(需要API级别11)从
DatePickerDialog
访问它


实际上,我想显示从当前日期算起的一年日历