如何显示只有月份和年份字段的Androiddateselect器?

我想禁用android sdkdateselect器上的一天select选项。 任何简单的XMLconfiguration将是最好的

Solutions Collecting From Web of "如何显示只有月份和年份字段的Androiddateselect器?"

我刚刚发布了一个新的dateselect器框架,允许您创build自定义dateselect器。 我还提供了一些例子,如你正在寻找的dateselect器。 希望,这对你有用。

代码可以在这里find: https : //github.com/bendemboski/DateSlider

更新06/2014:这个图书馆是2010年开发的,自2011年以来一直没有维护。所以现在很可能过时了。

有可能使用reflection破解DatePicker实例。 这样,您就可以访问DatePicker中代表date的NumberPicker实例:

datePicker = (DatePicker) findViewById(R.id.expiration_date); try { Field f[] = datePicker.getClass().getDeclaredFields(); for (Field field : f) { if (field.getName().equals("mDayPicker")) { field.setAccessible(true); Object dayPicker = new Object(); dayPicker = field.get(datePicker); ((View) dayPicker).setVisibility(View.GONE); } } } catch (SecurityException e) { Log.d("ERROR", e.getMessage()); } catch (IllegalArgumentException e) { Log.d("ERROR", e.getMessage()); } catch (IllegalAccessException e) { Log.d("ERROR", e.getMessage()); } 

说到reflection,这在Android 4.4.2 SDK中起作用

 "mDaySpinner" 

代替

 "mDayPicker" 

我认为这是最好的解决scheme

  datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE); 

编辑:根据下面的评论,我不会按照这个答案了。

我不认为你可以用默认dateselect器来做到这一点。 您必须从基本的Android UI元素中创build它。 但是不要去那么麻烦,为什么不使用更好的库元素,比如这个看起来很漂亮的iPhone类的轮子: http : //code.google.com/p/android-wheel/我还没有使用它,我打算!

这在2.2版本中工作正常。 但是对话的标题没有改变。

 for (Field datePickerDialogField : datePickerDialogFields) { if (datePickerDialogField.getName().equals("mDatePicker")) { datePickerDialogField.setAccessible(true); DatePicker datePicker = (DatePicker) datePickerDialogField.get(datePickerDialog); 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); } } } } 

您可以使用https://github.com/SimonVT/android-datepicker部件来实现backported兼容性,并让dateselect器“不见了”

 <net.simonvt.numberpicker.NumberPicker android:id="@+id/day" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dip" android:layout_marginRight="16dip" android:focusable="true" android:focusableInTouchMode="true" android:visibility="gone" />