应用程序崩溃时,在不同的TextViews非常快速点击

问题描述:

我是新来的android和具有容器视图(framelayout)的片段。它上面有两个TextView,比如标签。每个TextView即txt1,txt2分别添加2个片段,即frgmnt1,frgmnt2。当单击TextView时,会添加相应的片段。如果再次点击,片段被删除。应用程序崩溃时,在不同的TextViews非常快速点击

这部分工作正常。但是,当我非常快速地点击TextView时,我的应用程序崩溃并显示“无主机”异常。任何人都可以帮我理解为什么发生这种情况?

(注意,此处不需要制表符的布局实现)。

这里是堆栈跟踪:

07-04 18:22:25.600 10971-10971/integral.com.sellfie E/AndroidRuntime: FATAL EXCEPTION: main 
Process: integral.com.sellfie, PID: 10971 
java.lang.IllegalStateException: No host 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1239) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234) 
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2046) 
    at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1989) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1092) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) 
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) 
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) 
    at integral.com.sellfie.Fragments.MemberFragment.addFragment(MemberFragment.java:319) 
    at integral.com.sellfie.Fragments.MemberFragment.showFragment(MemberFragment.java:270) 
    at integral.com.sellfie.Fragments.MemberFragment$3.onClick(MemberFragment.java:242) 
    at android.view.View.performClick(View.java:5207) 
    at android.view.View$PerformClick.run(View.java:21168) 
    at android.os.Handler.handleCallback(Handler.java:746) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5443) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
+0

把你的代码在这里 –

+0

它可能是因为你正试图删除添加甚至在它的片段。尝试在确定点击事件后停用视图很短的时间(例如300毫秒)。 –

+0

感谢Arpit Ratan,Vishal Patoliya的回应和sairam的正确编辑。即,我需要禁用所有按钮300ms.ok.i将检查,并会回复给你。 –

希望这将有助于you.You只需要使用下面的方法来改变你的片段。

注意:这里我没有使用支持碎片,所以相应地更改代码。

//Change fragment in appropriate container 
    private void changeFragment(Fragment fragment) { 
      if (fragment != 
     getFragmentManager().findFragmentById(R.id.frame_container)) { 

     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
        //now implementing the Hack 
        if (oldFragment != null) 
         transaction.detach(oldFrag); 
        transaction.replace(R.id.frame_container, fragment); 
        transaction.attach(fragment); 
        transaction.commit(); 
        oldFragment = fragment; 
       } 
      }