2013-12-11 101 views
0

我努力尋找當我嘗試啓動特定活動時拋出的某個NullPointerException的原因。使用ListView時出現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()中的內容外,我的活動不會執行其他任何操作。由於沒有代碼來填充列表視圖(這裏有,但我試圖找到問題的根源評論它),當活動開始時,它應該只是一個空白屏幕。

當我註釋掉與weekdayListView相關的XML文件中的部分時,活動加載得很好,所以我必須假設我設置XML的方式存在問題。我在兩者之間唯一的區別是我沒有明確地設置android:entries屬性,但是如果我理解正確,在這種情況下它應該只使用默認值。

我一直堅持這一段時間,所以任何幫助,非常感謝。我試圖提供儘可能多的信息,因爲我認爲這些信息是相關的,但如果還有其他內容我忘記了,請告訴我。

+0

你能提供你的活動代碼的其餘部分請。它是否擴展列表活動? – HpTerm

+0

什麼時候工作正常?當你評論'weekdayListView'或'timeSlotListView'? – Apoorv

+0

@HpTerm:除上面列出的onCreate()方法外,只有周圍的'public class Display extends Activity {}',包名和一些當前未使用的導入。 @Apoorv:當我註釋掉'weekdayListView'時,它工作的很好,我的意思是當我開始活動時顯示空白'timeSlotListView'。 – MisterM2402

回答

3

當你的android:entries屬性指向一個字符串數組資源時,它指向一個佈局。

在您的strings.xml中創建一個字符串數組,例如

<string-array name="vals"> 
    <item>Foo</item> 
    <item>Bar</item> 
</string-array> 

然後用

android:entries="@string/vals" 
+0

它指向一個佈局,因爲我想爲該列表視圖的每一行使用自定義佈局。當我只有timeSlotListView(即當我註釋掉其他)時,它工作正常。 – MisterM2402

+0

@ MisterM2402'android:entries'應該提供預定義的字符串數組。爲了提供自定義佈局,您需要覆蓋適配器類。 – waqaslam

+0

哎呀,剛剛意識到我的意思是它工作正常,如果我註釋'timeSlotListView'。 我從數據庫中填充列表視圖的教程只使用了SimpleCursorAdapter(即使自定義佈局用於列表視圖),但現在我再次檢查它,似乎沒有說要添加一個' android:entries'屬性的任何地方,不知道我從哪裏得到。 – MisterM2402

相關問題