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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM