Fragment中不能使用自定义带参构造函数

通过Fragment自定义的静态方法将值从activity传到fragment中,然后就想到这样不是多次一举吗,为什么不直接写个带参构造函数将值传过去呢?试了一下,发现Fragment有参构造函数竟然报错,抱歉写了这么长时间代码对Fragment还不是很会用,笑哭,感觉任重道远啊...android中Fragment的构造函数

String[] titles = {
                GlobalConfig.CATEGORY_NAME_APP,
                GlobalConfig.CATEGORY_NAME_ANDROID,
                GlobalConfig.CATEGORY_NAME_IOS,
                GlobalConfig.CATEGORY_NAME_FRONT_END,
                GlobalConfig.CATEGORY_NAME_RECOMMEND,
                GlobalConfig.CATEGORY_NAME_RESOURCE};

        CommonViewPagerAdapter infoPagerAdapter = new CommonViewPagerAdapter(getSupportFragmentManager(),titles);
        // App
        CategoryFragment appFragment = CategoryFragment.newInstance(titles[0]);
        // Android
        CategoryFragment androidFragment = CategoryFragment.newInstance(titles[1]);
        // iOS
        CategoryFragment iOSFragment = CategoryFragment.newInstance(titles[2]);
        // 前端
        CategoryFragment frontFragment = CategoryFragment.newInstance(titles[3]);
        // 瞎推荐
        CategoryFragment referenceFragment = CategoryFragment.newInstance(titles[4]);
        // 拓展资源s
        CategoryFragment resFragment = CategoryFragment.newInstance(titles[5]);

        infoPagerAdapter.addFragment(appFragment);
        infoPagerAdapter.addFragment(androidFragment);
        infoPagerAdapter.addFragment(iOSFragment);
        infoPagerAdapter.addFragment(frontFragment);
        infoPagerAdapter.addFragment(referenceFragment);
        infoPagerAdapter.addFragment(resFragment);
public static CategoryFragment newInstance(String mCategoryName) {
        CategoryFragment categoryFragment = new CategoryFragment();
        Bundle bundle = new Bundle();
        bundle.putString(CATEGORY_NAME, mCategoryName);
        categoryFragment.setArguments(bundle);
        return categoryFragment;
    }
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_blank, container, false);
        ButterKnife.bind(this, view);

        //取出传过来的值
        Bundle bundle = getArguments();
        mTitle  = bundle.getString(ARG_TITLE);

        return view;
    }

原文地址:https://www.cnblogs.com/ganchuanpu/p/11971341.html

时间: 2024-10-09 23:15:59

Fragment中不能使用自定义带参构造函数的相关文章

默认构造函数嵌套带参构造函数

struct CLS{ int m_i; CLS(int i):m_i(i){} CLS(){CLS(0)} } CLS obj; cout << obj.m_i << endl; 结果并不是0,因为在默认构造函数内部再调用带参数的构造函数是用户行为而非编译器行为,只执行函数调用,不会执行初始表达式.

Python中语法糖及带参语法糖

在python中,@符号常被称作语法糖(装饰器),在某函数定义时,用以包装该函数,以达到截取,控制该函数的目的. def d(f): print('d...') k=f #此处保留了传进来的原函数 f def f(x): return k(x)*2 return f #此处不能写成f(x),f是函数句柄,如果带(),则调用,这里只返回句柄. @d def e(x): return x**2print(e(3)) 比如上面代码,@d,就等价于e=d(e),d(e)的返回值为f,f在d中是一个函数句

Java 中带参带返回值方法的使用

如果方法既包含参数,又带有返回值,称为带参带返回值的方法. 例: 实现功能:将考试成绩排序并输出,返回成绩的个数 实现思路: 1. 定义一个包含整型数组参数的方法,用来传入成绩数组 2. 在方法体中使用 Arrays.sort( ) 方法对成绩数组进行排序,然后使用 Arrays.toString( ) 方法将数组转换为字符串并输出,最后使用 return 返回数组中元素的个数. 3. 调用方法时需要先创建对象,然后再调用.调用时为其传入成绩数组,并获取方法的返回值,保存在变量中,最后输出成绩的

Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)

Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.堆.方法区.常量池) 以上就是Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.堆.方法区.常量池)的全部内容了,更多内容请关注:CPP学习网_CPP大学 本文固定链接:CPP学习网_CPP大学-Eclipse中的快捷键快速生成常用代码(例如无参.带参构造,set.get方法),以及Java中重要的内存分析(栈.

慕课网-Java入门第一季-7-5 Java 中带参无返回值方法的使用

1 public class HelloWorld { 2 public static void main(String[] args) { 3 4 // 创建对象,对象名为hello 5 HelloWorld hello = new HelloWorld(); 6 7 // 调用方法,传入两门课程的成绩 8 hello.calcAvg(94, 81); 9 } 10 11 /* 12 * 功能:计算两门课程考试成绩的平均分并输出平均分 13 * 定义一个包含两个参数的方法,用来传入两门课程的成

oracle中带参存储过程的使用

Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: 1 create or replace procedure out_test(v_user in emp.user_name%type, 2 v_salary out emp.salary%type, 3 v_deptno out emp.emp_deptno%type) as 4 begin 5 select salary, emp_deptno 6 into v_salary, v_deptno 7 from em

Java 中带参无返回值方法的使用

现实生活中电饭锅可以实现“煮饭”的功能,但前提是我们必须提供食材.如果我们什么都不提供,那就真是的“巧妇难为无米之炊”了. Java带参就是解决这类问题的方法. 例如:为了解决计算两门科目平均分的计算问题,就可以定义一个带参的方法,通过调用方法,传入两门课程的成绩 一定不可忽视的问题: 1. 调用带参方法时,必须保证实参的数量.类型.顺序与形参一一对应 2. 调用方法时,实参不需要指定数据类型 3. 方法的参数可以是基本数据类型,如 int.double 等,也可以是引用数据类型,如 Strin

报表引擎API开发入门—带参程序数据集

我们今天又来讲讲报表开发的事,上周开的这个系列入门文章也三四天了,浏览量不佳小编甚是悲伤啊,希望大家多多支持我! 一.问题描述 在实际应用中,可能需要根据表名动态地改变数据源,比如在程序数据集中,通过传进的表名参数,到数据库取出对应的表作为数据源.因为FineReport是通过AbstractTableData抽象类来读取数据源的,而上述所有的数据来源都继承实现其抽象方法 ,因此用户只要实现了AbstractTableData抽象类,也就可以用自定义类型的数据源了(程序数据集),FineRepo

Storm问题——组件带参数构造函数未被调用,抛出NullpointerException

问题描述 不知道大家有没有遇到过这个问题,我实现了BaseRichBolt,重载一个带参数的构造函数,new这个组件时传入一个参数作为该组件的成员变量,然后在declareOutputFields方法中调用该变量,local模式运行正常,分布式模式运行就抛NPE.后来过了半小时,再提交,又OK了.(PS:其间检查了很多遍代码,没有传入NULL变量) 我在开发trident程序时,继承mapState时也出现了这个问题 可能原因 1.跟storm本身的序列化机制有关系,storm本身对组件进行序列