使用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 风格支持的更好.

目录
相关文章
|
6月前
|
设计模式 程序员 C++
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
【C++ 泛型编程 高级篇】C++模板元编程:使用模板特化 灵活提取嵌套类型与多容器兼容性
891 2
|
5月前
|
编译器 程序员 C++
C++一分钟之-模板基础:泛型编程
【6月更文挑战第21天】C++模板,泛型编程的关键,让代码跨类型工作,增强重用与灵活性。理解模板基础,如函数和类模板,注意避免特化与偏特化的混淆、编译时膨胀及复杂的错误调试。通过明确特化目的、限制模板使用及应用现代C++技术来优化。示例展示了模板如何自动或显式推导类型。模板元编程虽强大,但初学者宜从基础开始。正确使用模板,提升代码质量,同时保持简洁。
51 3
|
4月前
|
编译器 运维
开发与运维函数问题之声明一个简单的函数模板,函数模板工作如何解决
开发与运维函数问题之声明一个简单的函数模板,函数模板工作如何解决
26 5
|
5月前
|
运维 前端开发 Serverless
函数计算产品使用问题之wordpress应用模板在什么地方
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
安全 编译器 程序员
【C++ 11 模板和泛型编程的应用以及限制】C++11 模板与泛型深度解析:从基础到未来展望
【C++ 11 模板和泛型编程的应用以及限制】C++11 模板与泛型深度解析:从基础到未来展望
120 1
|
6月前
|
存储 安全 算法
【C/C++ 泛型编程 进阶篇】C++中的模板参数与成员访问:多种方法详解
【C/C++ 泛型编程 进阶篇】C++中的模板参数与成员访问:多种方法详解
399 0
|
6月前
|
算法 搜索推荐 编译器
【C/C++ 编程题 04】实现 模板函数和模板类的特例化,并且展示差异化的点
【C/C++ 编程题 04】实现 模板函数和模板类的特例化,并且展示差异化的点
57 0
|
6月前
|
算法 编译器 程序员
【C++ 泛型编程 入门篇】全面掌握C++元模板中的模板继承:模板继承深入指南和教程
【C++ 泛型编程 入门篇】全面掌握C++元模板中的模板继承:模板继承深入指南和教程
243 0
|
6月前
|
程序员 编译器 容器
【C++14保姆级教程】变量模板,Labmda泛型
【C++14保姆级教程】变量模板,Labmda泛型
186 0
|
编译器 C语言 C++
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(下)
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(下)