Android开发,实用的BaseActivity的创建及使用

最开始学习Android的时候

大多数的视频都没有触及到BaseActivity的使用

很多具有相同元素的界面都要自己手写

虽说多写几遍,可以慢慢的熟悉代码

但是真正开发的时候代码还是显得很冗余

这时候BaseActivity的重要性就凸显出来了

举个例子


比如这两张图,他们内容不一样

但是他们都有相似的顶部

这个顶部是我自定义的ActionBar

一般流程是每新建一个这样的页面都要经历导入自定义ActionBar--findViewById--设置内容--设置点击事件

当这样的页面很多时就要写很多次一样的代码

到底一个类一大段一大段的冗余代码

我在这里使用了BaseActivity

/**
 * 基类Activity
 * 
 * @author stanny
 * 
 */
public class BaseActivity extends Activity implements OnClickListener{
	private View actionbar_view;
	private ImageView base_img;
	private TextView base_text;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	//带有顶部自定义actionbar
	public void setActionBar(boolean bool){
		// 自定义Actionbar
		final ActionBar actionBar = getActionBar();
		actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
		actionBar.setCustomView(R.layout.my_actionbar);// 导入自定义界面
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);// 全屏
		actionbar_view = actionBar.getCustomView();
	}
	
	//加入到activity队列
	public void addActivity(Activity activity){
		SysApplication.getInstance().addActivity(this);
	}
	
	//获得左侧图片
	public ImageView getLeftImg() {
		return (ImageView) actionbar_view.findViewById(R.id.ab_left_btn);
	}
	//获得右侧图片
	public ImageView getRightImg() {
		return (ImageView) actionbar_view.findViewById(R.id.ab_right_btn);
	}
	//获得中央文字
	public TextView getMidText() {
		return (TextView) actionbar_view.findViewById(R.id.ab_mid_text);
	}
	//隐藏左侧图片
	public void hideLeftImg() {
		base_img = getLeftImg();
		base_img.setVisibility(View.INVISIBLE);
	}
	//隐藏右侧图片
	public void hideRightImg() {
		base_img = getRightImg();
		base_img.setVisibility(View.INVISIBLE);
	}
	//隐藏中央文本
	public void hideMidText() {
		TextView mid_text = getMidText();
		mid_text.setVisibility(View.INVISIBLE);
	}
	//设置左侧背景图
	public void setLeftImgBG(int resId) {
		base_img = getLeftImg();
		base_img.setBackgroundResource(resId);
	}
	//设置右侧背景图
	public void setRightImgBG(int resId) {
		base_img = getRightImg();
		base_img.setBackgroundResource(resId);
	}
	//设置中央文本
	public void setMidText(String text) {
		base_text = getMidText();
		base_text.setText(text);
		TextPaint textPaint = base_text.getPaint();
		textPaint.setFakeBoldText(true);
	}

	//点击事件
	@Override
	public void onClick(View view) {
	}
}
简单的BaseActivity差不多就这样了

然后让有同样顶部的Activity去继承BaseActivity

/**
 * 注册界面
 * 
 * @author stanny
 * 
 */
public class Register_Act extends BaseActivity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.act_register);
		initview();
	}

	/**
	 * 初始化
	 */
	private void initview() {
		setActionBar(true);//带有顶部自定义actionbar
		addActivity(this);// 加入到界面列表
		setMidText("注 册 账 号");//设置中央文本
		hideRightImg();//隐藏左侧图标
		
		getLeftImg().setOnClickListener(this);
	}


	/**
	 * 点击事件
	 */
	@Override
	public void onClick(View view) {
		switch (view.getId()) {
		case R.id.ab_left_btn:
			finish();
			break;
		default:
			break;
		}
	}

}
可以明显看到

                setActionBar(true);//带有顶部自定义actionbar
		addActivity(this);// 加入到界面列表
		setMidText("注 册 账 号");//设置中央文本
		hideRightImg();//隐藏左侧图标

这样的四句话就代替原本需要十多二十行才能解决的问题
这样十多个相同界面做下来,节省的就多了去了

同时需要进行改动的时候只需要在一个类中更改就可以了

希望对大家有帮助

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值