1

Fragment extends 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();

助けてください。

4

1 に答える 1

1

notifyDataSetInvalidated()配列が空の場合、および配列が空でない場合に呼び出しnotifyDataSetChanged()ます。

もう少し明確にするために、データが空で、listViewにemptyView を設定している場合notifyDataSetInvalidated()、空のビューが表示されます。あなたが得ているエラーは、 を呼び出すnotifyDataSetChanged()と、アダプターがデータがないときに listView ビューを呼び出そうとしているため、そのビューを構築できないためです。

于 2012-06-28T10:31:27.130 に答える