我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字。TitleBar上的点击事件,如果给每一个Activity都写一遍TitleBar是一件非常费事的事情,这个时候我们就可以重写一个Activity基类,让其他有相同点的Activity来继承这个类,从而省去了很多的重复不必要的工作。提高了效率。
如图:
两个界面拥有共同的特点,有一个我们自己定义的TitleBar,这个TitleBar属于我们自定义的基类BaseActivity,如果我们想让一个类具有这个特性,只需要继承BaseActivity并添加相应的布局即可。事件什么的都写一边就OK了。
BaseActivity.java
内部有一个重写的TitleBar控件,封装对应的方法对TitleBar进行操作,该类的事件将会被TitleBa调用,具体调用看TitleBar实现
/**
* 重写的一个Activity 的基类,在基类中实现了一个TitleBar 用TitleBar来展示一个标题
* 同时定义一个Back按钮,点击的时候退出当前的Activity
*
* @author mingwei
*
*/
public abstract class BaseActivity extends Activity {
private TitleBar mTitleBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Light_NoTitleBar);
}
@Override
public void setContentView(int layoutResID) {
// TODO Auto-generated method stub
super.setContentView(layoutResID);
initBaseView();
}
public void initBaseView() {
mTitleBar = (TitleBar) findViewById(R.id.base_titlebar);
}
public void setTitleBarBackText(String text) {
// mTitleBar.setBackText(text);
}
public void setTitleBarTitle(String tite) {
if (mTitleBar != null) {
mTitleBar.setTitle(tite);
}
}
public void setTitleBarTitle(int titleId) {
if (mTitleBar != null) {
mTitleBar.setTitle(getString(titleId));
}
}
public vo