2013-08-24 157 views
0

我遇到了一个操作栏的问题,我解释得很好。 所以,如果我在一个标签(选择说)如果有cliccassi意外崩溃的应用程序,我希望没有发生......但我不明白。 我会发布一些代码,我把它放在TAB配置的主要活动中。ActionBar崩溃Android

private class TabListener<T extends Fragment> implements ActionBar.TabListener { 

    private Fragment mFragment; 

    private final Activity mActivity; 

    private final String mTag; 

    private final Class<T> mClass; 

    public TabListener(Activity activity, String tag, Class<T> clz) { 

     mActivity = activity; 

     mTag = tag; 

     mClass = clz; 

    } 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 

     // Check if the fragment is already initialized 

     if (mFragment == null) { 

      // If not, instantiate and add it to the activity 

      mFragment = Fragment.instantiate(mActivity, mClass.getName()); 

      ft.add(android.R.id.content, mFragment, mTag); 


     } else { 

      // If it exists, simply attach it in order to show it 
      ft.show(mFragment); 
      //ft.attach(mFragment); 

     } 

    } 
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { 

     if (mFragment != null) { 

      // Detach the fragment, because another one is being attached 

      // ft.detach(mFragment); 
      ft.hide(mFragment); 
     } 

    } 
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { 

      ft.replace(tab.getPosition(),mFragment); 

     // User selected the already selected tab. Usually do nothing. 
    } 

} 

日志:

java.lang.IllegalArgumentException: Must use non-zero containerViewId 
at android.app.BackStackRecord.replace(BackStackRecord.java:384) 
at android.app.BackStackRecord.replace(BackStackRecord.java:379) 
at com.megadonate.megadownloader.MainActivity$TabListener.onTabReselected(MainActivity.java:158) 
at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577) 
at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1084) 
at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:537) 
at android.view.View.performClick(View.java:4232) 
at android.view.View$PerformClick.run(View.java:17318) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4921) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
at dalvik.system.NativeStart.main(Native Method) 
+0

你的日志说什么? –

+0

在主帖后加入 – lillogoal

回答

0

它似乎并不认为你在FragmentTransaction进行交易commit
检查this后的指导。