在我的項目中,我使用了this library,DatePickerDialog和HoloEverywhere以及其他一些小視圖庫。我的問題是,當我嘗試僅在2.3.3設備上創建此對話框時,我得到NullPointerException。DialogFragment中的findViewById在2.3.3設備上返回null
然而,奇怪的是,當我使用這個庫並在其他項目中創建與完全相同的代碼的對話框(例如HoloEverywhere演示)時,它在所有設備上都能正常工作。 我用下面的代碼從(HoloEverywhere)活動的onClick方法中創建DatePickerDialog:
final DatePickerDialog dpd = DatePickerDialog.newInstance(this, 2013, 5, 16, false);
dpd.setYearRange(2013, 2015);
dpd.show(getSupportFragmentManager(), "datepicker");
使我有以下錯誤:在堆棧跟蹤中提到
08-19 20:55:45.434: E/AndroidRuntime(1330): FATAL EXCEPTION: main
08-19 20:55:45.434: E/AndroidRuntime(1330): java.lang.NullPointerException
08-19 20:55:45.434: E/AndroidRuntime(1330): at com.fourmob.datetimepicker.date.DatePickerDialog.onCreateView(DatePickerDialog.java:203)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.os.Handler.handleCallback(Handler.java:587)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.os.Handler.dispatchMessage(Handler.java:92)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.os.Looper.loop(Looper.java:130)
08-19 20:55:45.434: E/AndroidRuntime(1330): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-19 20:55:45.434: E/AndroidRuntime(1330): at java.lang.reflect.Method.invokeNative(Native Method)
08-19 20:55:45.434: E/AndroidRuntime(1330): at java.lang.reflect.Method.invoke(Method.java:507)
08-19 20:55:45.434: E/AndroidRuntime(1330): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-19 20:55:45.434: E/AndroidRuntime(1330): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-19 20:55:45.434: E/AndroidRuntime(1330): at dalvik.system.NativeStart.main(Native Method)
類/線可以找到here
希望這是足夠的信息。乾杯。
在我看來,這裏有一個佈局 - 你有它 - 有一個ID? – g00dy
所有佈局的東西都在圖書館裏完成。 [見這裏](https://github.com/flavienlaurent/datetimepicker/blob/master/datetimepicker-library/res/layout)佈局和它的ID。提到的佈局文件是date_picker_dialog.xml,但它使用了 s,所以我鏈接了整個文件夾。 –
JohnathanSmithy
好了,關於線203(來自logcat的)我看到這個'this.mMonthAndDayView.setOnClickListener(本);',它是'this.mMonthAndDayView =((的LinearLayout)view.findViewById(R.id.date_picker_month_and_day));' 。您給我的鏈接不包含此佈局。 – g00dy