Android – 封装Fragment不依赖于Activity

Android – 封装Fragment不依赖于Activity

大家好,又见面了,我是全栈君。

封装Fragment不依赖于Activity


本文地址:http://blog.csdn.net/caroline_wendy


Fragment直接托管activity的intent会破坏Fragment的封装性。


能够使用newInstance()的静态方法,完毕fragment实例及bundle对象的创建,

然后将argument放入bundle中,最后再附加给fragment.


newInstance代码:

    public static CrimeFragment newInstance(UUID crimeId) {
        Bundle args = new Bundle();
        args.putSerializable(EXTRA_CRIME_ID, crimeId);
        CrimeFragment fragment = new CrimeFragment();
        fragment.setArguments(args);

        return fragment;
    }


Activity创建Fragment:

    protected Fragment createFragment() {
//        return new CrimeFragment();
        UUID crimeId = (UUID)getIntent().getSerializableExtra(CrimeFragment.EXTRA_CRIME_ID);
        return CrimeFragment.newInstance(crimeId);
    }


获取Argument数据:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        UUID crimeId = (UUID)getActivity().getIntent().getSerializableExtra(EXTRA_CRIME_ID);
        UUID crimeId = (UUID)getArguments().getSerializable(EXTRA_CRIME_ID);
        mCrime = CrimeLab.get(getActivity()).getCrime(crimeId); //依赖activity获取crime
    }

Android - 封装Fragment不依赖于Activity

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115555.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Numpy下dtype中的str_与string_的区别[通俗易懂]

    Numpy下dtype中的str_与string_的区别[通俗易懂]    为什么写这篇文章呢,其实简单来说就是因为搜不到别人有这类的文章呗,所以自己研究了一下。    在我的某个程序中需要将数据保存成numpy数组,数组中每个元素又必须是字符串的格式但是当你输入dtype=numpy.str的时候,你会发现又三个相近的数据类型可选,那就是str、str_和string_了,如下图str自然不用说,看后面就知道,builtins也就…

    2022年5月25日
    33
  • 启动spring时报java.lang.NoClassDefFoundError: org/springframework/boot/Bootstrapper解决办法

    启动spring时报java.lang.NoClassDefFoundError: org/springframework/boot/Bootstrapper解决办法D:\Java\bin\java.exe-XX:TieredStopAtLevel=1-noverify-Dspring.output.ansi.enabled=always-Dcom.sun.management.jmxremote-Dspring.jmx.enabled=true-Dspring.liveBeansView.mbeanDomain-Dspring.application.admin.enabled=true“-javaagent:D:\IDEA\IntelliJIDEA

    2022年7月20日
    50
  • ajax 长轮询_js 轮询

    ajax 长轮询_js 轮询1.三者介绍【1】http协议介绍1)介绍:http协议是请求/响应范式的,每个http响应都对应一个http请求,http协议是无状态的,多个http请求之间是没有关系的;2)http协议的被动性:在标准的HTTP请求响应语义中,浏览器发起请求,服务器发送一个响应,这意味着在浏览器发起新请求前,服务器不能发送新信息给客户端浏览器;【2】htt

    2022年10月14日
    2
  • ldd命令 ubuntu_ldd命令

    ldd命令 ubuntu_ldd命令1.在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;在Linux环境下通过ldd命令即可实现,在终端下执行:ldd/bin/ls//ldd命令通常使用”-v”或”–verbose”选项来显示所依赖的动态连接库的尽可能的详细信息。即可得到/bin/ls命令的相关共享库文件列表:libtermcap.so.2=>/lib/…

    2022年6月13日
    50
  • mask rcnn实现教程「建议收藏」

    mask rcnn实现教程「建议收藏」一,首先去github上下载mask-rcnn源码,这里提供一个百度网盘地址链接:https://pan.baidu.com/s/1htJYyNy密码:0r2b含可运行DEMO更新链接:https://pan.baidu.com/s/1HBPtIPz0xpZsCprl7rc6hw密码:bvm5二,下载对应的mask_rcnn_coco.h5模型,这里给出百度网盘下载地址链接:h……

    2022年10月4日
    3
  • AssemblyInfo.cs文件的作用

    AssemblyInfo.cs文件的作用

    2021年12月14日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号