Ish*_*shu 9 android android-datepicker
如何在datepickerdialog中隐藏/删除日期字段.实际上我的要求是使用本机日期选择器对话框,但它显示日,月和年.但根据我的要求,我只需要一个月和一年.所以我想隐藏或删除视图中的日期字段.
任何帮助都会非常有用.
Eve*_*rio 11
我不建议使用Reflection来做这种事情.
有一种更简单,更漂亮的方法:
((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
请注意该.getDatePicker()方法的DatePickerDialog工作原理API LEVEL >= 11.
Private DatePickerDialog createDialogWithoutDateField(){
DatePickerDialog dpd = new DatePickerDialog(_activity, ExpiryDateSetListener,cyear,cmonth, cday);
try{
Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
for (Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
Field datePickerFields[] = datePickerDialogField.getType().getDeclaredFields();
for (Field datePickerField : datePickerFields) {
if ("mDayPicker".equals(datePickerField.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = new Object();
dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}
}
}catch(Exception ex){
}
return dpd;
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码隐藏 DatePickerDialog 中的日期字段。
参考这个链接
| 归档时间: |
|
| 查看次数: |
20143 次 |
| 最近记录: |