gpt4 book ai didi

只有日期和月份的 Android 日期选择器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:28 26 4
gpt4 key购买 nike

我正在寻找一种方法来自定义 Android 中的日期选择器以仅显示日期和月份(即不显示年份)。

我正在创建一个基于 How to display date picker for android with only month and year fields? 的对话框:

    Dialog dlg = new DatePickerDialog(context, datePickerListener, dueDateCalendar.get(Calendar.YEAR), dueDateCalendar.get(Calendar.MONTH), dueDateCalendar.get(Calendar.DAY_OF_MONTH));
try {
Field f[] = dlg.getClass().getDeclaredFields();
for (Field field : f) {
String name = field.getName();
if (name.equals("YEAR")){
field.setAccessible(true);
Object dayPicker = new Object();
dayPicker = field.get(dlg);
((View) dayPicker).setVisibility(View.GONE);
}
}
} catch (Exception e){
// TODO: should not happen
e.printStackTrace();
}
return dlg;

但我在 ((View) dayPicker).setVisibility(View.GONE); 上不断收到 Cast 异常

java.lang.ClassCastException: java.lang.String cannot be cast to android.view.View

有什么想法吗?

最佳答案

试一试。它是 APIv11+,但在较低的 API 版本上还有其他方法。

DatePickerDialog dlg = new DatePickerDialog(context, datePickerListener, 
dueDateCalendar.get(Calendar.YEAR),
dueDateCalendar.get(Calendar.MONTH),
dueDateCalendar.get(Calendar.DAY_OF_MONTH));
int year = context.getResources().getIdentifier("android:id/year", null, null);
if(year != 0){
View yearPicker = dlg.getDatePicker().findViewById(year);
if(yearPicker != null){
yearPicker.setVisibility(View.GONE);
}
}
return dlg;

更新的代码:这应该可以完成工作。

DatePickerDialog dlg = new DatePickerDialog(context, datePickerListener, 
dueDateCalendar.get(Calendar.YEAR),
dueDateCalendar.get(Calendar.MONTH),
dueDateCalendar.get(Calendar.DAY_OF_MONTH))
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
int year = getContext().getResources()
.getIdentifier("android:id/year", null, null);
if(year != 0){
View yearPicker = findViewById(year);
if(yearPicker != null){
yearPicker.setVisibility(View.GONE);
}
}
}
};
return dlg;

关于只有日期和月份的 Android 日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21838437/

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