gpt4 book ai didi

android - Android Lollipop 中的自定义日期选择器对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:14:39 25 4
gpt4 key购买 nike

我希望日期选择器仅显示月份和年份。我已经自定义了日期选择器来执行此操作,即从选择器中删除“日”字段,但在 Android Lollipop 中我正在获取带有日、月和年的选择器。以下是我的一段代码。请帮助我了解问题所在。提前致谢。

    try {
Field f[] = mDatePicker.getClass().getDeclaredFields();
for (Field field : f) {

if (field.getName().equals("mDaySpinner") || field.getName().equals("mDayPicker")) {
field.setAccessible(true);
Object dayPicker = new Object();
dayPicker = field.get(mDatePicker);
((View) dayPicker).setVisibility(View.GONE);
}

}
} catch (SecurityException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}

最佳答案

使用反射来查找和隐藏 UI 元素并不是一个很好的做法。在您的情况下,它停止在 Lollipop 中工作,因为 mDaySpinner现在包含在内部私有(private)静态 DatePickerSpinngerDelegateDatePicker 中的类类。

我建议通过 View 层次结构来查找和隐藏日期微调器元素。我编写了以下适用于 Lollipop 的代码:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int daySpinnerId = Resources.getSystem().getIdentifier("day", "id", "android");
if (daySpinnerId != 0) {
View daySpinner = datePicker.findViewById(daySpinnerId);
if (daySpinner != null) {
daySpinner.setVisibility(View.GONE);
}
}
}

关于android - Android Lollipop 中的自定义日期选择器对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26460682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com