我正在努力找到当我尝试启动特定活动时抛出某个NullPointerException的原因。
LogCat输出:
12-11 13:29:28.211: E/AndroidRuntime(701): Caused by: java.lang.NullPointerException
12-11 13:29:28.211: E/AndroidRuntime(701): at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:214)
12-11 13:29:28.211: E/AndroidRuntime(701): at android.content.res.Resources.getTextArray(Resources.java:361)
12-11 13:29:28.211: E/AndroidRuntime(701): at android.content.res.TypedArray.getTextArray(TypedArray.java:628)
12-11 13:29:28.211: E/AndroidRuntime(701): at android.widget.ListView.<init>(ListView.java:168)
12-11 13:29:28.211: E/AndroidRuntime(701): at android.widget.ListView.<init>(ListView.java:159)
12-11 13:29:28.211: E/AndroidRuntime(701): ... 25 more
相关活动的onCreate()方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display);
}
我的活动正在尝试加载的布局“显示”的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false" >
<ListView
android:id="@+id/weekdayListView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
<ListView
android:id="@+id/timeSlotListView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:entries="@layout/item_layout" >
</ListView>
</LinearLayout>
除了onCreate()中的内容之外,我的活动没有做任何其他事情。由于没有代码来填充列表视图(但是我在尝试找到问题的根源时对其进行了评论),当活动开始时它应该只是一个空白屏幕。
当我在XML文件中注释掉与weekdayListView
相关的部分时,活动加载得很好,所以我必须假设我如何设置XML存在问题。我可以在两者之间看到的唯一区别是我没有明确设置android:entries
属性,但如果我理解正确,在这种情况下它应该只使用默认值。
我已经坚持了一段时间,所以任何帮助都非常感谢。我试图提供我认为相关的尽可能多的信息,但如果还有其他任何我忘记包含的信息,请告诉我。
答案 0 :(得分:3)
你的android:entries属性指向一个布局,而不是指向一个字符串数组资源。
在strings.xml中创建一个字符串数组,例如
<string-array name="vals">
<item>Foo</item>
<item>Bar</item>
</string-array>
然后使用
android:entries="@string/vals"