使用BaseActivity模板类实现活动的便捷写法。

简介: 在以前的省赛代码中曾看见过 Activity的抽象模板类,上次在实际使用时,使用了单Activity+多Fragment来实现需求,也简单写了一个Fragment的模板类。

在以前的省赛代码中曾看见过 Activity的抽象模板类,上次在实际使用时,使用了单Activity+多Fragment来实现需求,也简单写了一个Fragment的模板类。在比赛中,比赛的基类使用了 BaseActivity 实现抽象模板类。所以做个记录吧。


实现的写法很简单。附下面代码


模板类的写法,具体注释一看就懂

public abstract class BaseActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getLayoutId());
        initView();
        initData();
        TextView title=findViewById(R.id.title);
        title.setText(getLayoutTitle());
        findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onAfter();
            }
        });
    }
    //对应的布局文件
    protected abstract int getLayoutId();
    //初始化数据
    protected abstract void initData();
    //点击返回图标处理事件
    protected  abstract void onAfter();
    //初始化控件
    protected  abstract void initView();
    //页面标题
    protected abstract  String getLayoutTitle();
}

子活动的写法。

public class MainActivity extends BaseActivity {
    @Override
    protected int getLayoutId() {
        return R.layout.activity_main;
    }
    @Override
    protected void initData() {
    }
    @Override
    protected void onAfter() {
    }
    @Override
    protected void initView() {
    }
    @Override
    protected String getLayoutTitle() {
        return "主界面";
    }
}

不过为什么叫模板类呢?

abstart 更多的是反映一种模板效果,而接口反映的是某种方法。

这里解释为什么BaseActivity要继承自FragmentActivity?



可以看见AppCompatActivity是继承于FragmentActivity.

FragmentActivity 继承自Activity,用来解决Android 3.0之前无法使用Fragment的问题,所以在使用的时候需要导入android-support-v4.jar兼容包,同时继承 FragmentActivity,这样在Activity中就能嵌入Fragment来实现你想要的布局效果。 而AppCompatActivity 继承自FragmentActivity,支持ActionBar,同时对 MD 风格支持的更好.

目录
相关文章
|
7月前
|
安全 算法 C++
【C++泛型编程 进阶篇】模板返回值的优雅处理(二)
【C++泛型编程 进阶篇】模板返回值的优雅处理
163 0
|
6月前
|
安全 Java 数据库
ifPresent()`方法的用途、使用场景
ifPresent()`方法的用途、使用场景
455 4
|
5月前
|
编译器 运维
开发与运维函数问题之声明一个简单的函数模板,函数模板工作如何解决
开发与运维函数问题之声明一个简单的函数模板,函数模板工作如何解决
29 5
|
7月前
|
算法 搜索推荐 编译器
【C/C++ 编程题 04】实现 模板函数和模板类的特例化,并且展示差异化的点
【C/C++ 编程题 04】实现 模板函数和模板类的特例化,并且展示差异化的点
63 0
|
7月前
|
存储 安全 算法
【C/C++ 泛型编程 进阶篇】C++中的模板参数与成员访问:多种方法详解
【C/C++ 泛型编程 进阶篇】C++中的模板参数与成员访问:多种方法详解
454 0
|
7月前
|
算法 编译器 程序员
【C++ 泛型编程 入门篇】全面掌握C++元模板中的模板继承:模板继承深入指南和教程
【C++ 泛型编程 入门篇】全面掌握C++元模板中的模板继承:模板继承深入指南和教程
294 0
|
7月前
|
算法 编译器 C++
【C++ 泛型编程 进阶篇】:C++ 元模版编程 typename关键字的多种用法全解析
【C++ 泛型编程 进阶篇】:C++ 元模版编程 typename关键字的多种用法全解析
151 0
|
设计模式 前端开发 Java
工作中简单工厂模式用法及其使用场景?
工作中简单工厂模式用法及其使用场景?
118 0
|
Serverless Go
你还不体验泛型吗
你还不体验泛型吗
126 0
你还不体验泛型吗
|
C++
C/C++ 模板类模板与函数模板区别,以及用法详解
C/C++ 模板类模板与函数模板区别,以及用法详解
276 0
C/C++ 模板类模板与函数模板区别,以及用法详解