Android的BaseFragment封装

简介: Android的BaseFragment封装

不久前文章写了 BaseActivity的博客 今天顺便把BaseFragment的封装也写一下。

Base的封装可以让你更加了解Java面向对象的特征(如继承、多态、泛型、注解等等)的同时解决重复性编码问题。废话不多说,直接上代码。

/**
 * @author:程龙 date; On 2018/8/22
 */
public abstract  class BaseFragment extends Fragment {
    private View mContentView;
    private Context mContext;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        mContentView = inflater.inflate(setLayoutResourceID(), container, false);
        ButterKnife.bind(this, mContentView);
        mContext = getContext();
        init();
        setUpView();
        setUpData();
        return mContentView;
    }
    /**
     * 此方法用于返回Fragment设置ContentView的布局文件资源ID * * @return 布局文件资源ID
     */
    protected abstract int setLayoutResourceID();
    /**
     * 一些View的相关操作
     */
    protected abstract void setUpView();
    /**
     * 一些Data的相关操作
     */
    protected abstract void setUpData();
    /**
     * 此方法用于初始化成员变量及获取Intent传递过来的数据 * 注意:这个方法中不能调用所有的View,因为View还没有被初始化,要使用View在initView方法中调用
     */
    protected void init() {
    }
    public View getContentView() {
        return mContentView;
    }
    public Context getMContext() {
        return mContext;
    }
}

除了上面的简单封装,还可以根据实际项目中使用的第三方来封装需要的一些初始化或者其他操作,例如友盟、推送、百度等。

1. 
    @Override public void onResume() {
        super.onResume();
        StatService.onPause(this);
//此处是百度 ...//其他一些 
    }
    @Override public void onPause() {
        super.onPause();
        StatService.onResume(this);
//此处是百度 ...//其他一些 
    }
    @Override public void onDestroy() {
        DetoryViewAndThing(); 
//其他一些 
    }

除此之外还可以封装一些Fragment、Activity之间传参问题,如下:

1. /** 
 * 
 发送消息,用于各个组件之间通信 
 * 
 *@param event 消息事件对象 
 */
 public final <EVENT extends BaseEvent> void sendMessage(@NonNull EVENT event) { 
 // 发布事件 EventBus.getDefault().post(event); 
  }

大家可以根据自己的十几需求进行更改,有什么问题可以在下方评论。


目录
相关文章
|
3月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
61 0
|
6月前
|
Android开发
Android Http 请求封装及使用
Android Http 请求封装及使用
139 0
|
8月前
|
前端开发 Android开发 数据安全/隐私保护
安卓MVI架构真的来了?动手试着封装吧(一)上
安卓MVI架构真的来了?动手试着封装吧(一)
232 0
|
8月前
|
API Android开发 Kotlin
安卓MVI架构真的来了?动手试着封装吧(三)下
安卓MVI架构真的来了?动手试着封装吧(三)
82 0
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(三)上
安卓MVI架构真的来了?动手试着封装吧(三)
120 0
|
8月前
|
Android开发 Kotlin 容器
安卓MVI架构真的来了?动手试着封装吧(二)下
安卓MVI架构真的来了?动手试着封装吧(二)
67 0
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(二)上
安卓MVI架构真的来了?动手试着封装吧(二)
102 0
安卓MVI架构真的来了?动手试着封装吧(二)上
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(一)下
安卓MVI架构真的来了?动手试着封装吧(一)
114 1
|
9月前
|
XML Java 数据处理
Android:RecyclerView封装,打造列表极简加载
此库的封装,除了刷新加载库使用了SmartRefreshLayout,其他的都是自己从0到1的开发,目前,自己已经在项目中使用,暂时没有出现任何问题,当然了,后续,也会不断的对其进行优化,增加一些其他的功能,希望有需要的小伙伴,长期关注。
237 0