应用程序崩溃时,在不同的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)
答
希望这将有助于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;
}
}
把你的代码在这里 –
它可能是因为你正试图删除添加甚至在它的片段。尝试在确定点击事件后停用视图很短的时间(例如300毫秒)。 –
感谢Arpit Ratan,Vishal Patoliya的回应和sairam的正确编辑。即,我需要禁用所有按钮300ms.ok.i将检查,并会回复给你。 –