3 回答
TA貢獻1895條經驗 獲得超3個贊
所有其他答案似乎都令人費解,所以我只想指出一個明顯的問題:您可以通過(簡單地調用)DatePicker從a 獲取基礎,并使用以下方法設置其邊界:DatePickerDialoggetDatePicker()
setMinDate(long minDate)setMaxDate(long maxDate)
其中,自變量是默認時區中自1970年1月1日00:00:00以來的通常毫秒數。當然,您仍然必須計算這些值,但這對于Calendar該類而言應該是微不足道的:只需獲取當前日期并加上或減去x年份即可。
更細心的讀者會注意到,直到API級別11為止,上述設置器才可用。如果您僅針對該(或較新的)平臺,則可以使用。如果您還想支持姜餅設備(Android 2.3 / API級別9+),則可以改用backport版本DatePicker。
TA貢獻1853條經驗 獲得超9個贊
由于我正在游覽且無法訪問我的PC,因此我無法為您提供工作代碼。但是我可以給您一種實現目標的方法(或者我認為)。
我不確定這是否會完美運行,但是值得嘗試的任何方式。
請嘗試此代碼并通知我。
“ DatepickerType”是該類的Integer公共成員變量。
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
int y = Calendar.getInstance().get(Calendar.YEAR);
switch(DatepickerType){
case 1:
if(selectedYear>(y-2)){
//Add message if you want
selectedYear = y-2;
}
else if(selectedYear<(y-12)) {
//Add msg if u want
selectedYear = y-12;
}
case 2:
if(selectedYear>(y)){
//Add message if you want
selectedYear = y;
}
else if(selectedYear<(y-2)) {
//Add msg if u want
selectedYear = y-2;
}
}
String year1 = String.valueOf(selectedYear);
String month1 = String.valueOf(selectedMonth+1);
String day1 = String.valueOf(selectedDay);
//do what you need
setLastStatus();
}
};
- 3 回答
- 0 關注
- 704 瀏覽
添加回答
舉報
