3 개의 조각 탭, fragment1, fragment2 및 fragment3이 있습니다. fragment2에 다른 단편 탭을 만들었습니다. 문제는 조각 탭이 포함 된 fragment2를 다시 선택할 때마다 내 응용 프로그램이 아래 표시된 LOGCAT과 충돌합니다. 나는이 링크 Getting the error "Java.lang.IllegalStateException Activity has been destroyed" when using tabs with ViewPager에 stackoverflow에 질문을 따르지만 그것은 작동하지 않는 것 같습니다. 또한 올바른 라이브러리 "import java.lang.reflect.Field;
"을 (를) 가져오고 있습니까?FragmentTabHost "작업이 파괴되었습니다."
fragment2.java
import com.actionbarsherlock.app.SherlockFragment;
import android.os.Bundle;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment2 extends SherlockFragment{
private FragmentTabHost mTabHost;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getSherlockActivity());
mTabHost.setup(getSherlockActivity(), getChildFragmentManager(), R.layout.fragmenttab2);
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
Fragment1.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
Fragment2.class, null);
mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
Fragment3.class, null);
return mTabHost;
}
@Override
public void onDestroyView() {
super.onDestroyView();
mTabHost = null;
}
}
로그 캣 :
07-22 16:18:50.668: E/AndroidRuntime(29774): FATAL EXCEPTION: main
07-22 16:18:50.668: E/AndroidRuntime(29774): java.lang.IllegalStateException: Activity has been destroyed
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:278)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.View.dispatchAttachedToWindow(View.java:9953)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2198)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2206)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.addViewInner(ViewGroup.java:3376)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.addView(ViewGroup.java:3208)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.addView(ViewGroup.java:3165)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.view.ViewGroup.addView(ViewGroup.java:3145)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:922)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.os.Handler.handleCallback(Handler.java:605)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.os.Handler.dispatchMessage(Handler.java:92)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.os.Looper.loop(Looper.java:137)
07-22 16:18:50.668: E/AndroidRuntime(29774): at android.app.ActivityThread.main(ActivityThread.java:4507)
07-22 16:18:50.668: E/AndroidRuntime(29774): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 16:18:50.668: E/AndroidRuntime(29774): at java.lang.reflect.Method.invoke(Method.java:511)
07-22 16:18:50.668: E/AndroidRuntime(29774): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
07-22 16:18:50.668: E/AndroidRuntime(29774): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
07-22 16:18:50.668: E/AndroidRuntime(29774): at dalvik.system.NativeStart.main(Native Method)
는 Fragment2.class.getDeclaredField ("mChildFragmentManager")를 대체하려고; Fragment2.class.getField ("mChildFragmentManager")에 의해; – kvh
죄송합니다, getField 시도 – kvh
내 logcat에서 약간의 오류가 발생했습니다. 흠, 어떤 해결 방법? –