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
访问它
实际上,我想显示从当前日期算起的一年日历