• android fragment传递参数_fragment之间传值的两种方法


    在Activity中加载Fragment的时候、有时候要使用多个Fragment切换、并传值到另外一个Fragment、也就是说两个Fragment之间进行参数的传递、查了很多资料、找到两种方法、一种是通过共同的Activity传递、这种方法是在Activity里面添加一个字段、来临时保存要一些值

    翻了一下Fragment的API、找到了另外一个方法来传递、就像Activity一样便捷的实现参数传递程序中的一段代码、是通过Bundle来传递的、相比之下第一种方法要简单一点

    FRAGMENT参数传递方法一

    在Activity中定义一个字段、然后添加set和get方法、代码如下、mTitle就是要传递的参数、如果是传递对象、可以把mTitle换成一个对象即可

    public class DemoActivity {
    
        private String mTitle;
        
        public String getmTitle() {
            return mTitle;
        }
    
        public void setmTitle(String title) {
            this.mTitle = title;
        }
    
    }

    Fragment调用方法、需要注意的是在设值的时候要进行强转一下

    ((DemoActivity)getActivity()).getmTitle();

    FRAGMENT参数传递方法二

    可以使用bundle进行参数传递、这样在两个Fragment跳转的时候就可以带上参数了、同样也可以传递一个复杂的对象

    ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));
        DemoFragment demoFragment = new DemoFragment();  
        Bundle bundle = new Bundle();  
        bundle.putString("key", "这是方法二");  
        demoFragment.setArguments(bundle);  
        ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT);  
        ft.commit();  

    在另外一个Fragment获取参数的方式只需要一个语句、key是自己定义的一个标识、参数的形式只要bundle能传递都可以实现

    String string = getArguments().getString("key");  

    ANDROID FRAGMENT传递参数_FRAGMENT之间传值的两种方法
    2014-11-22 14:49:02  By: dwtedx

    在Activity中加载Fragment的时候、有时候要使用多个Fragment切换、并传值到另外一个Fragment、也就是说两个Fragment之间进行参数的传递、查了很多资料、找到两种方法、一种是通过共同的Activity传递、这种方法是在Activity里面添加一个字段、来临时保存要一些值

    翻了一下Fragment的API、找到了另外一个方法来传递、就像Activity一样便捷的实现参数传递程序中的一段代码、是通过Bundle来传递的、相比之下第一种方法要简单一点

     

    FRAGMENT参数传递方法一

    在Activity中定义一个字段、然后添加set和get方法、代码如下、mTitle就是要传递的参数、如果是传递对象、可以把mTitle换成一个对象即可

    publicclassDemoActivity{privateString mTitle;publicString getmTitle(){return mTitle;}publicvoid setmTitle(String title){this.mTitle = title;}}

     

     

    Fragment调用方法、需要注意的是在设值的时候要进行强转一下

    ((DemoActivity)getActivity()).getmTitle();

     

    FRAGMENT参数传递方法二

    可以使用bundle进行参数传递、这样在两个Fragment跳转的时候就可以带上参数了、同样也可以传递一个复杂的对象

    ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));DemoFragment demoFragment =newDemoFragment();Bundle bundle =newBundle();  
    	bundle.putString("key","这是方法二");  
    	demoFragment.setArguments(bundle);  
    	ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT);  
    	ft.commit();

     

    在另外一个Fragment获取参数的方式只需要一个语句、key是自己定义的一个标识、参数的形式只要bundle能传递都可以实现

    String string = getArguments().getString("key");

     

    总结

    从上面两种方法看来、方法一要简单一些、但个人觉得有点投机取巧、不过也很合Java的开发规范、如果是同一个Activity中要加载很多Fragment的话、这种方法无疑要简单很多

    而方法二是使用了Android的Bundle传递的、这种方法应该更官方一点吧、不过在项目开发中、怎么实现简单就怎么来、也没太多关系

  • 相关阅读:
    Hyper-V中的VM如何使用Pass-through Disk
    LDF文件丢失, 如何仅用MDF文件恢复数据库呢?
    PowerShell中的一个switch的例子
    NetBiosDomainNamesEnabled与SharePoint User Profile Service Application
    在Windows Server 2008 R2上安装Exchange 2013过程中遇到的一些问题
    C语言位域精解(转)
    uniq命令 (转)
    sort命令
    curl命令(测试连接命令)
    C10K——千万级并发实现的秘密:内核不是解决方案,而是问题所在!(转)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5465730.html
Copyright © 2020-2023  润新知