我正在尝试为当前可见的活动中的所有片段保存标签。
所以我定义了这些:
// Fragment TAGS
private final static String EDIT_COLLECTIONS_TAG = "edit collection";
public final static String EDIT_IMAGE_TAG = "edit image";
public final static String ADD_IMAGE_TAG = "add image";
// Collection of Frag Tags
private final static String[] FRAG_TAGS = {EDIT_COLLECTIONS_TAG, EDIT_IMAGE_TAG, ADD_IMAGE_TAG};
我onSaveInstanceState(Bundle outState)
做到了:
for(String tag : FRAG_TAGS){
if(getFragmentManager().findFragmentByTag(tag).isVisible()){
outState.putString(tag, tag);
}
}
...但是 LogCat 告诉我该if
行正在引发空指针异常。
所以不知道我为什么尝试:
if(getFragmentManager().findFragmentByTag(FRAG_TAGS[1]).isVisible()){
outState.putString(EDIT_IMAGE_TAG, EDIT_IMAGE_TAG);
}
......这奏效了。
所以看起来访问数组没有问题。在云雀中,我将数组的内容更改为实际的字符串:{"EDIT_COLLECTIONS_TAG", "EDIT_IMAGE_TAG", "ADD_IMAGE_TAG"}
但这并没有改变结果。
那么这里发生了什么?