利用可能なカレンダーのリストを取得してスピナーに表示するアプリがあります。
使用可能なカレンダーリストが空の場合でも、ListPreferenceがスピナーに「使用不可」と表示されることを確認するためのチェックがあります。
ListPreferenceを使用して、[設定]タブにスピナーを表示しています。
これがpreferences.xmlです:
<ListPreference android:title="Calendar"
android:key="calendars"
android:summary="Calendars to use for saving Appts"
android:selectable="true"
android:entryValues="@array/cal_entryvalues_list_preference"
android:entries="@array/cal_entries_list_preference"
android:defaultValue="0"
android:enabled="true"></ListPreference>
私のユーザーは次のエラーを報告しました:
java.lang.NullPointerException at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)at android.widget.AbsListView.obtainView(AbsListView.java:1294) android.widget.ListView.measureHeightOfChildren(ListView.java:1198)at android.widget.ListView.onMeasure(ListView.java:1109)at android.view.View.measure(View.java:8171)atandroid.view。 ViewGroup.measureChildWithMargins(ViewGroup.java:3132)at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)at android.widget.LinearLayout.onMeasure(LinearLayout .java:304)at android.view.View.measure(View.java:8171)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)atandroid.widget.LinearLayout。android.widget.LinearLayout.measureVertical(LinearLayout.java:381)のmeasureChildBeforeLayout(LinearLayout.java:1012)android.widget.LinearLayout.onMeasure(LinearLayout.java:304)のcom.android.internal.widget.WeightedLinearLayout.onMeasure (WeightedLinearLayout.java:60)at android.view.View.measure(View.java:8171)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)at android.widget.FrameLayout.onMeasure(FrameLayout.java: 245)android.view.View.measure(View.java:8171)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)atandroid。 view.View.measure(View.java:8171)at android.view.ViewRoot.performTraversals(ViewRoot.java:801)at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)at android.os.Handler.dispatchMessage (Handler.java:99)android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang .reflect.Method.invoke(Method.java:521)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :626)dalvik.system.NativeStart.main(ネイティブメソッド)
スタックトレースは、Androidのすべての内部動作を示しているようです。私のコードへの参照はありません。これは、Android2.1およびAndroid2.2プラットフォームで発生しています。
残念ながら、MotoDroidでエラーを再現できませんでした。開発者コンソールのログから、これは特定の電話に固有であるように見えます(例:HTC Incredible)。
ここで何が起こっているのか分かりますか?