錯誤信息
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
