Java 为什么我的android应用程序销毁后我的列表数据为空?
在我的应用程序被销毁后,当我单击listview中的某个项目时,它应该将数据复制到剪贴板,而不是返回null,尽管我实际上对列表中的某些项目进行了计数 这里有一些代码: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
@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();
}