我在Fragment扩展ListFragment中有这个:
try {
FileInputStream in = getActivity().getApplicationContext().openFileInput("list");
ObjectInputStream i = new ObjectInputStream(in);
myData = (ArrayList<HashMap<String, MessageRecord>>) i.readObject();
if (myData != null) {
this.totalmessages = myData.size();
mySimpleAdapter = new MySimpleAdapter(getActivity().getApplicationContext(), myData, R.layout.menurow, mStrings, new int [] {R.id.ivDirection, R.id.tvMessage});
setListAdapter(mySimpleAdapter);
}
in.close();
}
我收到了这个错误:
Error: Fetch Message List
Error: java.lang.NullPointException
Error: ...FragmentMessages$1.run(FragmentMessages.java:307)
最后一行指向
mySimpleAdapter.notifyDataSetChanged();
请帮忙。
答案 0 :(得分:1)
调用notifyDataSetInvalidated()
;如果数组不为空,则调用notifyDataSetChanged()
。
为了澄清一点,如果您的数据为空并且在listView上设置了emptyView,notifyDataSetInvalidated()
将显示空视图。
你得到的错误是因为在调用notifyDataSetChanged()
时,适配器试图在没有数据时召唤一个listView视图,因此无法构造该视图。