android关于fragment的构造函数用法建议

Posted WidgetBox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android关于fragment的构造函数用法建议相关的知识,希望对你有一定的参考价值。

错误信息

Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead:

因为原生的fragment的管理和在屏幕上显示,是推荐不要在任何继承fragment类里面,去创建类的构造方法,否则在运行时,会出现问题。如果你的fragment没有声明任何的构造函数,系统会自动帮你创建一个构造。除非你有声明一个带参的构造函数,才需要声明一个无参的构造函数。

解决的办法

public static final GridFragment newInstance(String tabId){

    GridFragment f = new GridFragment();

    Bundle bdl = new Bundle(2);

    bdl.putString(TAB_ID, tabId);

    f.setArguments(bdl);

    return f;

}
@Override
public void onCreate(Bundle savedInstanceState) { String tabId = getArguments().getString(TAB_ID); }

要是非要不按规则来就这样

@SuppressLint("ValidFragment")

public PlaceDialogFragment(Place place, DisplayMetrics dm){

        super();

        this.mPlace = place;

        this.mMetrics = dm;

    }

避免使用非默认构造函数

可以在ShowSynopsis上面加上@SuppressLint("ValidFragment"),忽略警告。

或者加入这句代码@SuppressLint(“ValidFragment")

磊磊tua

 

以上是关于android关于fragment的构造函数用法建议的主要内容,如果未能解决你的问题,请参考以下文章

Fragment构造问题,Android中显示文字格式问题,判断是哪一个类跳入的当前类问题

由于 Fragment 类中没有公共构造函数方法,在 android 中旋转设备后出现异常

Android Intent 无法解析构造函数

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

传统构造函数替代构造函数膨胀布局的区别

使用 ViewPager 在 Fragment 中创建 Listview