Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的android应用程序销毁后我的列表数据为空?_Java_Android_Nullpointerexception - Fatal编程技术网

Java 为什么我的android应用程序销毁后我的列表数据为空?

Java 为什么我的android应用程序销毁后我的列表数据为空?,java,android,nullpointerexception,Java,Android,Nullpointerexception,在我的应用程序被销毁后,当我单击listview中的某个项目时,它应该将数据复制到剪贴板,而不是返回null,尽管我实际上对列表中的某些项目进行了计数 这里有一些代码: @Override protected void onSaveInstanceState(final Bundle outState) { super.onSaveInstanceState(outState); outState.putStringArrayList("list", listFragment.g

在我的应用程序被销毁后,当我单击listview中的某个项目时,它应该将数据复制到剪贴板,而不是返回null,尽管我实际上对列表中的某些项目进行了计数

这里有一些代码:

@Override
protected void onSaveInstanceState(final Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putStringArrayList("list", listFragment.getLocations());
}


一些Logcat数据

07-25 02:30:42.172  13968-13968/com.DXC0.locationmanagertests.app E/com.DXC0.locationmanagertests.app.TwoItemListFragment﹕ Could not copy data: NullPointerException
07-25 02:30:42.172  13968-13968/com.DXC0.locationmanagertests.app D/com.DXC0.locationmanagertests.app.TwoItemListFragment﹕ 5

编辑: 刚刚检查过,我发送的数据不是空的,它确实存在;但由于某种原因,它仍然返回null。问题似乎在于这条线

            cl.setPrimaryClip(ClipData.newPlainText("copy", data));
剪贴簿管理器“cl”由于某种原因是空的,所以在我的try块中,我重新初始化了它,它工作了。数据从不为空

    try {
        cl = ((MainActivity) getActivity()).clipboardManager();
        cl.setPrimaryClip(ClipData.newPlainText("copy", data));
        copyToast.show();
    } catch (NullPointerException e) {
        e.printStackTrace();
        Log.e(TAG, "Could not copy data: NullPointerException");
        copyToast = Toast.makeText(context, getString(R.string.null_text), Toast.LENGTH_LONG);
        copyToast.show();
    }

如果应用程序已被销毁(你是说你的活动吗?),你的数据将不可用。是的,在GC销毁它之后。当我将数据保存在onSaveInstanceState中并尝试检索它时,我确实尝试检索数据,但它仍然是空的——正如您在日志数据中所看到的。数据不是空的,它与试图将数据复制到用户的剪贴板有关。请在下面将答案作为答案发布。@user3398918-听起来像是鸡和蛋的问题。
07-25 02:30:42.172  13968-13968/com.DXC0.locationmanagertests.app E/com.DXC0.locationmanagertests.app.TwoItemListFragment﹕ Could not copy data: NullPointerException
07-25 02:30:42.172  13968-13968/com.DXC0.locationmanagertests.app D/com.DXC0.locationmanagertests.app.TwoItemListFragment﹕ 5
            cl.setPrimaryClip(ClipData.newPlainText("copy", data));
    try {
        cl = ((MainActivity) getActivity()).clipboardManager();
        cl.setPrimaryClip(ClipData.newPlainText("copy", data));
        copyToast.show();
    } catch (NullPointerException e) {
        e.printStackTrace();
        Log.e(TAG, "Could not copy data: NullPointerException");
        copyToast = Toast.makeText(context, getString(R.string.null_text), Toast.LENGTH_LONG);
        copyToast.show();
    }