android 基类BaseFragment的简单使用

目的: 当有多个Fragment使用时,提供一个抽象基类BaseFragment, 来封装一下方法,使其Fragment的使用简单化。

解决问题:

1: 使用getActivtiy() 为空的情况,
2: 简化了onCreateView, 只需要提供布局id就好了

像添加和移除fragment的情况,这里没有列出,后续。。。

package com.ttjjttjj.recyclerviewtest.fragment;

import android.app.Activity;
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;

/**
 * Created by Administrator on 2016/5/31 0031.
 *
 *  基类fragment
 *
 *  @author tj
 *
 */
public abstract class BaseFragment extends Fragment {

    protected Activity mActivity;

    /**
     * 获得全局的,防止使用getActivity()为空
     * @param context
     */
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        this.mActivity = (Activity)context;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container
            , Bundle savedInstanceState) {

        View view = LayoutInflater.from(mActivity)
                .inflate(getLayoutId(), container, false);
        initView(view, savedInstanceState);

        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initData();
    }

    /**
     * 该抽象方法就是 onCreateView中需要的layoutID
     * @return
     */
    protected abstract int getLayoutId();

    /**
     * 该抽象方法就是 初始化view
     * @param view
     * @param savedInstanceState
     */
    protected abstract void initView(View view, Bundle savedInstanceState);

    /**
     * 执行数据的加载
     */
    protected abstract void initData();
}

如果有什么其他好的意见的,希望留言,一起学习,谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,203评论 25 708
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 11,948评论 7 123
  • 姓名:顾君 单位:宁波大发化纤有限公司 学习组:第234期努力一组 【日精进打卡第19天】 【知~学习】 《六项精...
    JASONGU_2f28阅读 177评论 0 0
  • 这个世界上,谁不想被所有的人喜欢,谁都不想被他人否定,谁都想被所有人接受,可现实就是很残酷,你再怎么努力,再怎么做...
    风沙独舞阅读 392评论 9 7
  • 在我十岁那一年,我成为了托雷的玩伴,显然铁木真汗还不知道侍读这个词,但是他却已经凭着他的天纵之才,开始替诸位王子培...
    0c1a803f0820阅读 883评论 0 0