写了一个简单通用的BaseFragment
放在这里留着以后用。
public abstract class BaseFragment extends Fragment {
public String BASE_TAG = "BaseFragment";
public Context context;
protected View mRootView;
protected int mKey = -1;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
context = activity;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
mRootView = inflater.inflate(setLayoutResouceId(), container, false);
initView();
initData();
return mRootView;
}
/**
* 设置跟资源ID
*/
protected abstract int setLayoutResouceId();
/**
* 初始化View,绑定ID
*/
protected abstract void initView();
/**
* 初始化数据,绑定数据
*/
protected abstract void initData();
/**
* 绑定布局的ID,不用每次都去强转类型
*
* @param id
* @param <T>
* @return
*/
protected <T extends View> T findViewById(int id) {
if (mRootView == null) {
return null;
}
return (T) mRootView.findViewById(id);
}
public abstract void onBackEvent();
/**
* 设置View是否可用
* @param able
* @param views 传入的view,可变参数
*/
public void setViewEnable(boolean able,View... views){
LogTool.d(BASE_TAG, "setViewEnable able:" + able);
if(views == null || views.length == 0){
return;
}
if(able){
for (int i = 0; i < views.length; i++) {
if(views[i] != null){
views[i].setEnabled(true);
}
}
}else {
for (int i = 0; i < views.length; i++) {
if(views[i] != null){
views[i].setEnabled(false);
}
}
}
}
}