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

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

  • AndroidManifest.xml隐含VS显式权限(使用特性vs使用权限)
  • Android应用程序图标不显示
  • '不支持的模板依赖:用SDK Tools v22升级你的Android Eclipse插件'
  • 无法find适用于Android SDK的Google API
  • 有Android的Twitter API SDK吗?
  • 例外:不支持此function,请使用MenuItemCompat.getActionProvider()
  • 如何查询Android SDK播放列表中的歌曲?
  • 如何在android中创build聊天应用程序?
  • 我刚刚发布了一个新的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" />