Java Android-findViewById(Resources.getSystem().getIdentifier(“日”、“id”、“Android”)不工作
我试图展示一个只有月和年的日期选择器 这是我的密码:Java Android-findViewById(Resources.getSystem().getIdentifier(“日”、“id”、“Android”)不工作,java,android,mobile,android-7.0-nougat,Java,Android,Mobile,Android 7.0 Nougat,我试图展示一个只有月和年的日期选择器 这是我的密码: Calendar todayDate = Calendar.getInstance(); android.app.DatePickerDialog pickerDialog = new android.app.DatePickerDialog( new ContextThemeWrapper(getContext(), android.R.style.Theme
Calendar todayDate = Calendar.getInstance();
android.app.DatePickerDialog pickerDialog = new android.app.DatePickerDialog(
new ContextThemeWrapper(getContext(),
android.R.style.Theme_Holo_Light_Dialog_NoActionBar),
new android.app.DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
updateDobButtonWithValue(button, i, i1, i2, sdfdisplay, sdfvalue, valuechangecallback);
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
);
pickerDialog.getDatePicker().setMaxDate(todayDate.getTimeInMillis());
pickerDialog.getDatePicker().findViewById(getResources().getIdentifier("day","id","android")).setVisibility(View.GONE);
pickerDialog.show();
但问题是,当它到达这行代码时
pickerDialog.getDatePicker().findViewById(getResources().getIdentifier(“day”、“id”、“android”)).setVisibility(View.GONE)
它将返回一个错误
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.view.view.setVisibility(int)”
不幸的是,它适用于7.0以下的Android版本(棒棒糖、棉花糖),但不适用于Android 7.0(牛轧糖)
任何人都可以发现这个问题?谢谢问题是要么没有像
[“day”,“id”,“android”]这样的标识符
,或者在你的日期选择器中没有这样的视图。我认为,如果你只是调试实际发生的事情,这两个视图都很容易测试。@M.Prokhorov,但它在下面的版本上工作,可能是因为牛轧糖的内部实现发生了变化,这在文档中有几个地方提到过。正如我所说的,这对你来说会更容易、更快u调试实际发生的事情,而不是在这里等待答案。首先检查getIdentifier
是否返回零,然后如果不是这样,则检查picker是否确实包含该视图。@M.Prokhorov,好的,我会先检查它,然后会返回给您进行更新。TKST不会试图在运行时侵入其他人的小部件随着时间的推移,你可以实现你自己的日期选择器,它具有你想要的功能。Android附带的是开源的,因此你甚至可以复制他们的代码和资源作为起点。或者,如果其中一个满足你的需要,可以使用。拥有自己的代码可以消除你在这里遇到的问题,你可以在其他设备上也可以看到,制造商或ROM开发人员已经修补了日期选择器
。