抽取的思路
1,根据Fragment中几个常用的方法来抽取相应的方法
1,onCreate
//1,可以将接收的参数或者getContext()获取,然后子类可以直接使用
//2,主要用来接收参数
init();
2,onCreateView
//用来展示绑定的视图,子类必须实现
initView();
3,onViewCreate
//当视图创建完成后,可以使用ButterKnife来绑定注解
ButterKnife.bind(this,view);
4,onActivityCreate
//当Activity创建完成之后
//初始化数据
1,initData();
//初始化监听事件
2,initEvent();
抽取的代码实现
package com.example.guixin.oschina.base;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import butterknife.ButterKnife;
/**
* 类 名: ${CLASS_NAME}
* 创 建 者: guixin
* 创建时间: 2017/3/2 5:35
* 更新者 : $$Author$$
* 版 本: $$Rev$$
* 更新时间: $$Date$$
* 描 述: ${TODO}
*/
public abstract class BaseFragment extends Fragment {
protected String mArgs;
protected Context mContext;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
if (arguments != null) {
mArgs = arguments.getString("args");
}
mContext = getContext();
init();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return initView();
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
ButterKnife.bind(this,view);
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
initEvent();
}
/**
* 完成初始化,如参数的接收
* 在BaseFragment中不知道init方法的具体实现
* 交给子类:选择性实现
*/
protected void init() {
}
/**
* 决定Fragment展示的视图
* 在BaseFragment中不知道initView方法的具体实现
* 交给子类:选择性实现
*/
protected abstract View initView();
/**
* 初始化数据
* 在BaseFragment中不知道initData方法的具体实现
* 交给子类:选择性实现
*/
protected void initData() {
}
/**
* 初始化监听器
* 在BaseFragment中不知道initEvent方法的具体实现
* 交给子类:选择性实现
*/
protected void initEvent() {
}
}