您的位置:首页 > 其它

继承与BaseActivity的抽取

2016-08-10 13:55 369 查看
(未完待续)关于继承的理解:

继承就相当于遗产一样,可以直接拿来用;父类中的东西相当于公有的。

 

继承的作用:

1、子类继承父类是增强代码复用性和统一性,在写子类的时候不必重复写一些代码。特别是对于BaseActivity中的内容,关于布局、对话框的继承,在BaseActivity中抽取一些公用的东西。

2、父类引用指向子类对象,提高了程序可扩展性,如程序中有Dog d=new Dog();如果什么时候想用猫了改动就比较大了,但是如果Animal
d=new Dog();想用猫就只需要改这一句Animal d=new Cat();,程序后面的方法都不用改。(继承可以实现多态,可把相对具体的对象赋给相对抽象的引用。)

3、父类引用子类是为了使父类拥有更强的功能而不用重写父类方法(因为发现某个子类已经实现了某些功能)。

 

在BaseActivity中一般抽取和封装哪些东西?

常用对话框、状态栏的颜色改变、后退键、键盘的显示与隐藏、生命周期方法(管理activity)、事件分发、find控件、fragment等
 

对父类进行多层封装(第一层封装、第二层封装)

软键盘、关于网络的重构

package com.example.tuhuadmin.fanxinglei.widget;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Toast;

import com.example.tuhuadmin.fanxinglei.R;
import com.example.tuhuadmin.fanxinglei.utils.StatusBarUtil;

/**
* Created on 2016/8/1.
* Author:crs
* Description:抽取父类
*/
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStatusBar();
}

//设置状态栏的颜色
private void setStatusBar() {
StatusBarUtil.setColor(this, getResources().getColor(R.color.color_status_bar));
}

//Toast
public void showToast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}

//自定义对话框
public void showDialog(Context context, String text) {

}

//初始化控件 强制类型转化、泛型通配符的使用
protected <T extends View> T findView(int id) {
return (T) findViewById(id);
}

//返回键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}

//软键盘的显示与隐藏
//消息机制的抽取
//事件分发的抽取
//生命周期方法中关于Activity的管理
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  继承 BaseActivity