如何只用月份和年份字段显示android的日期选择器()

志不强者智不达,言不信者行不果。这篇文章主要讲述如何只用月份和年份字段显示android的日期选择器?相关的知识,希望能为你提供帮助。
我想禁用android sdk日期选择器上的日期选择选项。任何简单的xml配置都是最好的
答案我刚刚发布了一个新的日期选择器框架,允许您创建自定义日期选择器。我还提供了一些示例日期选择器,例如您正在寻找的日期选择器。希望,它对你有用。
【如何只用月份和年份字段显示android的日期选择器()】代码可以在这里找到:https://github.com/bendemboski/DateSlider
更新06/2014:这个图书馆是2010年开发的,自2011年以来一直没有维护。所以它很可能已经过时了。
另一答案可以使用反射来破解DatePicker实例。这样,您就可以访问代表DatePicker中日期的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()); }

另一答案说到反射,这适用于Android 4.4.2 SDK
"mDaySpinner"

代替
"mDayPicker"

另一答案我认为这是最好的解决方案
datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);

另一答案编辑:根据下面的评论,我不会再按照这个答案。
我不认为你可以使用默认的日期选择器。您必须使用基本的Android UI元素创建它。但是,为什么不使用像这个漂亮的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小部件来提高后向兼容性,让日期选择器“消失”
< 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" />

另一答案隐藏日:
datePicker.findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);

&
隐藏月份:
datePicker.findViewById(Resources.getSystem().getIdentifier("month", "id", "android")).setVisibility(View.GONE);


    推荐阅读