Fragment 基类的常规抽取

本文探讨了如何从标准的Fragment中抽取出基类,包括BaseFragment、BaseActivity和MyBaseAdapter。初始化过程分为init、initView、initData和initListener等步骤,通过将具体实现留给子类,使用protected或public修饰方法,实现灵活性。若要求子类必须实现特定方法,可将其声明为abstract,确保子类继承时进行相应实现。

Fragment 基类的抽取

  • 标配的类
  • Fragemt –>basefragmen
  • activity –>baseactivity
  • baseadapter –>mybaseadapter

    activity或者fragmeng中经常定义几个放发
    inti 除书画
    initview初始化视图
    initdate出事话视图
    initlistenre()

    一个方法可以从来年改革角度

  • 方法是干什么的
  • 方法在哪里被调用;额

  • 在基类中不知道如何实现方法懂得具体内容的时候

  • 交给子类去实现 –>修改方法修饰付就可以了.改为Protected 或者public
  • 可以控制子类是选择性实现,保留一个空方法就星了
  • 子类必须实现 :abtract
    • 一个类中有了抽象方法,一个类就变成呢该类类
/**
 * Created by yangg on 2017/7/9.
 * 常规的抽取 MVC 的设计模式
 * 对Fragment进行一些常规的抽取
 */

public abstract class BaseFragmentCommon extends Fragment {
    /**
     * BaseFragmentCommon 抽取的好处是什么
     * (基类抽取的好处是什么)
     * 从java语言的角度:减少代码量:经常放置共有的发那个发啊,以及共有的属性
     * 针对BaseFragmentCommon-->后期子类就可自需要实现我们自定义的方法,就行了,
     * 不用复写Fragment的声明周期的方法
     * 针对BaseFragmentCommon-->还可以控制累累,哪些是选择性实现,m哪些发那个发是必须实现
     * @param savedInstanceState
     */

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        init();

        super.onCreate(savedInstanceState);
    }



    /**
     * 返回fragmen所需要的布局
     * @param inflater
     * @param container
     * @param savedInstanceState
     * @return
     */
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        initView();
        return super.onCreateView(inflater, container, savedInstanceState);
    }



    /**
     * 数组 activity被创建的时候
     * @param
     * @param savedInstanceState
     */
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        initData();
        initListener();
        super.onActivityCreated(savedInstanceState);
    }

    /**
     * 进行相关
     * 初始化操作
     * 在baseFragment中不知道要进行什么初始化的操作
     */
    public void init() {
//        不知道写什么方法体的时候
    }

    /**
     * 初始化对应的fragmet
     * 修改基类类面对放发为抽象方法
     * 去掉用方法题
     * 交给子类去实现:必须去实现
     * 不许实现但是不知道具体实现吗,所以定义喂抽象方法,所以定义为抽象方法
     *
     */
    public abstract View initView() ;


    /**
     * 初始化Fragmet中的是户籍加载
     * 宿主activity被创建的时候
     * buzhidopa 如何进行数据加载名交给子类,子类
     */

    public void initData() {

    }
    /**
     * 吃石化对应的视图放回给Fragmebn尽享展示
     * 在Fragmen需要一个布局的时候
     *不知道如何具体的进行数据记载交给子类,子类是选择实现的
     *
     */
    public void initListener() {

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值