http://blog.csdn.net/u011730649/article/details/43227721

今天在项目中使用Fragment的时候出现这样的错误:

01-28 10:53:34.794: E/AndroidRuntime(8703): FATAL EXCEPTION: main
01-28 10:53:34.794: E/AndroidRuntime(8703): Java.lang.IllegalStateException: Fragment already active
01-28 10:53:34.794: E/AndroidRuntime(8703): at Android.app.Fragment.setArguments(Fragment.java:691)
01-28 10:53:34.794: E/AndroidRuntime(8703): at com.hb56.DriverReservation.android.activity.MainActivity.setCurTab(MainActivity.java:239)
01-28 10:53:34.794: E/AndroidRuntime(8703): at com.hb56.DriverReservation.android.fragment.PlanReservationFragment$1.onItemClick(PlanReservationFragment.java:130)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.widget.AbsListView.performItemClick(AbsListView.java:1177)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2894)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.widget.AbsListView$1.run(AbsListView.java:3657)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.os.Handler.handleCallback(Handler.java:800)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.os.Handler.dispatchMessage(Handler.java:100)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.os.Looper.loop(Looper.java:194)
01-28 10:53:34.794: E/AndroidRuntime(8703): at android.app.ActivityThread.main(ActivityThread.java:5400)
01-28 10:53:34.794: E/AndroidRuntime(8703): at java.lang.reflect.Method.invokeNative(Native Method)
01-28 10:53:34.794: E/AndroidRuntime(8703): at java.lang.reflect.Method.invoke(Method.java:525)
01-28 10:53:34.794: E/AndroidRuntime(8703): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
01-28 10:53:34.794: E/AndroidRuntime(8703): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-28 10:53:34.794: E/AndroidRuntime(8703): at dalvik.system.NativeStart.main(Native Method)

浏览了很多论坛里解决的方法,大致的分析如下:

首先Fragment的传参方式是这样的:

设置参数:

  1. ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));
  2. SearchProjectFragment sf = new SearchProjectFragment();
  3. Bundle bundle = new Bundle();
  4. bundle.putString("key", Projsid);
  5. sf.setArguments(bundle);
  6. ft.add(R.id.fragmentRoot, sf, SEARCHPROJECT);
  7. ft.addToBackStack(SEARCHPROJECT);
  8. ft.commit();

在Fragemnt取参数:

getArguments().getString("key");

发现Fragment被隐藏后,不能在使用setArguments()传递,否则就会报java.lang.IllegalStateException java.lang.IllegalStateException: Fragment already active异常主要是使用setArguments()传递参数导致的。 在 Fragment 没有被添加到 FragmentManager。

java.lang.IllegalStateException: Fragment already active异常主要是使用setArguments()传递参数导致的。
在 Fragment 没有被添加到 FragmentManager 之前,我们可以通过 Fragment.setArguments() 来设置参数,并在 Fragment 中,使用 getArguments() 来取得参数。在 Fragment 被添加到 FragmentManager 后,一旦被使用,我们再次调用 setArguments() 将会导致 java.lang.IllegalStateException: Fragment already active 异常。
解决方法:可以使用setter和getter Fragment的属性方法进行数据的存储和获取。

【转】解决Fragment already active方法的更多相关文章

  1. 经验解决Fragment被Replace后仍旧可见的问题

    经验解决Fragment被Replace后仍旧可见的问题 网上问的问题,大多会提到替换了Fragment而发现之前被替换的仍旧显示在那里.我个人使用android 2.3 +support 开发包,在 ...

  2. FragmentActivity与Fragment两者交互方法简介(转)

    FragmentActivity与Fragment两者交互方法简介 分类: Fragment 2014-07-07 18:17 88人阅读 评论(0) 收藏 举报 在Android4.0后很多时候我们 ...

  3. Android解决Fragment多层嵌套时onActivityResult无法正确回调的问题

    前言: Fragment也可以使用startActivityForResult方法去打开一个Activity,然后在其onActivityResult方法中处理结果,可是当Fragment嵌套的时候, ...

  4. 尝试解决IIS问题一些方法

    尝试解决IIS问题一些方法 在控制面板中安装相关功能.添加相关角色 Win下注册IIS: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_re ...

  5. adobe media encoder cc 2015在win10中打开崩溃的解决办法(该方法同样适用于adobe其他产品)

    今天就给大家讲讲adobe media encoder cc 2015启动的时候崩溃的问题,先来看看现象.就是这样了,然后我在网上找了很多办法,有的方法已经过时了,也或者因为现在新版本的adobe m ...

  6. extjs 解决使用store.sync()方法更新item有时不触发后台action的问题

    问题描述: extjs 解决使用store.sync()方法更新item有时不触发后台action,不出发后台action的原因是item的字段值没有变化 解决方法: item.setDirty(tr ...

  7. pytorch预训练模型的下载地址以及解决下载速度慢的方法

    https://github.com/pytorch/vision/tree/master/torchvision/models 几乎所有的常用预训练模型都在这里面 总结下各种模型的下载地址: 1 R ...

  8. Fragment的setUserVisibleHint方法实现懒加载,但setUserVisibleHint 不起作用?

    我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在 ...

  9. SQL Server中解决死锁的新方法介绍

    SQL Server中解决死锁的新方法介绍 数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法. 将下面的 ...

随机推荐

  1. android4.0以上部分手机绘图时会出现重影

    canvas外层的div需要设定属性style="overflow:visible;-webkit-transform: translateZ(0);

  2. Linux下ntpdate时间同步

    Linux下ntpdate时间同步 Ntp服务器配置(暂略,以后整理) 时间同步方法 同步命令               # ntpdate ntp服务器域名或IP           例:# nt ...

  3. 嵌入式 hi3518平台多路码流添加osd

    <span style="font-family:Courier New;"> /******************************************* ...

  4. selenium python (三)鼠标事件

    # -*- coding: utf-8 -*-#鼠标事件 #ActionChains类中包括:                     # context_click()  右击:           ...

  5. javascript面向对象实例

    非私有属性 function Student(name, gender, age, grade, teacher){ this.name = name; this.gender = gender; t ...

  6. AngularJs学习教程

    AngularJs 目录 AngularJs实战一 购物车 细讲ng-repeat指令 ng-show和ng-hide ng-class指令 ng-src和ng-href 应用控制器中的职责 watc ...

  7. 三角剖分求多边形面积的交 HDU3060

    //三角剖分求多边形面积的交 HDU3060 #include <iostream> #include <cstdio> #include <cstring> #i ...

  8. <System.ServiceModel>

    實例: <system.serviceModel>    <diagnostics performanceCounters="All" />    < ...

  9. effective c++:尽量替换define,确保对象使用前初始化

    #define ASPECT_RATIO 1.653 名为ASPECT_RATIO的值在预编译阶段被替换成1.653,如果在这个常量上出现编译错误,我们可能会困惑1.653的值是什么意思,于是将因为跟 ...

  10. gson在java和json串之间的应用

    public class JsonToJavaUtil { /** * 将json转成成javaBean对象 * * @param <T> * 返回类型 * @param json * 字 ...