BaseFragment的一般抽取

来源:互联网 发布:php 自动化部署工具 编辑:程序博客网 时间:2024/05/29 19:59

抽取的思路

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);        //1,对传递给Fragment的参数进行抽取        Bundle arguments = getArguments();        if (arguments != null) {            mArgs = arguments.getString("args");        }        //2,进行context的抽取        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注解        ButterKnife.bind(this,view);        super.onViewCreated(view, savedInstanceState);    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        //当Activity创建完成之后 加载数据 处理事件        initData();        initEvent();    }    /**     * 完成初始化,如参数的接收     * 在BaseFragment中不知道init方法的具体实现     * 交给子类:选择性实现     */    protected void init() {    }    /**     * 决定Fragment展示的视图     * 在BaseFragment中不知道initView方法的具体实现     * 交给子类:选择性实现     */    protected abstract View initView();    /**     * 初始化数据     * 在BaseFragment中不知道initData方法的具体实现     * 交给子类:选择性实现     */    protected void initData() {    }    /**     * 初始化监听器     * 在BaseFragment中不知道initEvent方法的具体实现     * 交给子类:选择性实现     */    protected void initEvent() {    }}
0 0