I had try to hide date picker about year file.
I search some method. I feel the method is suitable for me.
But I was not implement ok. = =
I use showDialog(0); command to call date picker.
Then changed some code below:
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
dlg =new DatePickerDialog(this, dsl, mYear, mMonth, mDay);
try
{
Field f[] = dlg.getClass().getDeclaredFields();
for( Field field :f)
{
Log.e("info", "f:"+field.getName());
if( field.getName().equals("mYearPicker"))
{
field.setAccessible(true);
Object yearPicker = new Object();
yearPicker = field.get(dlg);
((View) yearPicker).setVisibility(View.GONE);
}
}
dlg.setTitle(SystemData.DATEPICKER_TITLE);
dlg.setButton(DatePickerDialog.BUTTON_POSITIVE, SystemData.DATEPICKER_SUBMIT, dlg);
}
catch(SecurityException e)
{
Log.d("info", e.getMessage() );
}
catch(IllegalArgumentException e)
{
Log.e("info", e.getMessage());
}
catch(IllegalAccessException e)
{
Log.e("info", e.getMessage());
}
return dlg;
default:
break;
}
return null;
}
But I run the code. The Year field is exist.
Have any one know why?
I try to output field.getName(), I just get below
02-21 14:28:21.245: E/info(32085): f:DAY
02-21 14:28:21.245: E/info(32085): f:MONTH
02-21 14:28:21.245: E/info(32085): f:YEAR
02-21 14:28:21.245: E/info(32085): f:mCallBack
02-21 14:28:21.245: E/info(32085): f:mDatePicker
So I try to replace YEAR with mYearPicker .
But I will get error message below.
02-21 14:30:59.909: E/AndroidRuntime(32523): FATAL EXCEPTION: main
02-21 14:30:59.909: E/AndroidRuntime(32523): java.lang.ClassCastException: java.lang.String cannot be cast to android.view.View
Have any one know how to use the method fix to hide the year field and upper android 2.2 version ?
thank you very much.