在内部存储错误

时间:2016-01-18 15:48:26

标签: android android-fragments hashmap

我在片段变量中有一个 Hashmap ,用于查看关系的位置(int)。 有时我可以在onCreate中读取对象,但没有数据(大小为0),但是当我想在onPause或onStop上将片段激活到内部存储时,它给了我一个奇怪的错误,没有任何线索是什么原因它

  

android.widget.RelativeLayout

片段onPause:

@Override
protected void onPause() {
    super.onPause();
    try
    {
        FileOutputStream fileOutStream = getContext().openFileOutput("hashMap", Context.MODE_PRIVATE);
        ObjectOutputStream objOutStream = new ObjectOutputStream(fileOutStream);
        objOutStream.writeObject(HashMap);
        objOutStream.close();
        Log.v("Fragment:", "Done Writing "+HashMap.size());
    }catch (IOException e)
    {
        Log.v("Fragment:","MainPage(onStop): "+e.getMessage()+e.getLocalizedMessage());
    }
}

打开应用时从内部存储中读取以下行。

try {
        FileInputStream f = getContext().openFileInput("hashMap");
        ObjectInputStream s = new ObjectInputStream(f);
        HashMap= (HashMap<Integer, View>) s.readObject();
        s.close();
        Log.v("Fragment:", "Done Reading " + HashMap.size());
    } catch (ClassNotFoundException | IOException e) {
        Log.v("Fragment:", "MainPage(onCreate): " + e.getMessage());
    }

1 个答案:

答案 0 :(得分:1)

我认为

  

只有支持java.io.Serializable接口的对象才能写入流   根据{{​​3}}

View似乎没有实现此接口。