19
嘗試使用addHeaderView()
和addFooterView()
代替ListView
。如果我嘗試使用XML中爲頁眉或頁腳預定義的View,我會得到一個空指針異常。不過,如果我動態地創建使用代碼視圖,它工作正常...Android ListView addHeaderView()nullPointerException在XML中定義的預定義視圖
// This doesn't work... nullPointerException
ListView lv = (ListView) findViewById(R.id.my_list_view);
TextView header = (TextView) findViewById(R.id.my_header);
lv.addHeaderView(header);
// This works fine
ListView lv = (ListView) findViewById(R.id.my_list_view);
TextView header = new TextView(this);
TextView.setHeight(30);
TextView.setText("my header text!");
lv.addHeaderView(header);
我的堆棧跟蹤:
Caused by: java.lang.NullPointerException
at android.widget.ListView.clearRecycledState(ListView.java:522)
at android.widget.ListView.resetList(ListView.java:508)
at android.widget.ListView.setAdapter(ListView.java:440)
at com.company.myapp.MyActivity.refreshList(MyActivity.java:85)
at com.company.myapp.MyActivity.onCreate(MyActivity.java:37)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
... 11 more
任何線索?
這似乎是工作。真奇怪,它可以很好地動態創建元素。不知道爲什麼我必須跳過這裏的佈局充氣器。此外,這種方法似乎忽略我已在我的視圖的XML中設置的任何邊距... –
你可以嘗試將該文本視圖放在不同的佈局然後膨脹它,並在使用後設置頁眉和頁腳視圖? – user370305
工作。我只是將'TextView'包裝在'LinearLayout'中。我會把這個標記爲我的回答,但是我希望我知道爲什麼我必須跳過這些環節才能使其工作。無法確定它是一個錯誤還是什麼。謝謝! –