<include>标签和BaseActivity联合使用简化代码结构

include标签可以简化布局文件结构,方便维护,可以使用BaseActivity作为所有activity的父类,在里边做一些公共代码或者做一些公共布局的初始化工作供子类调用,简化代码结构,两者的结合使Android代码逻辑结构清晰并且更便于维护。

父类的activity由于没有setContentView属性,所以在BaseActivity中要想获得控件需要得到子类实例

在BaseActivity的onResume方法中加入方法

protected void onResume() {
<span style="white-space:pre">		</span>super.onResume();
<span style="white-space:pre">		</span>initTopLayout(this);
<span style="white-space:pre">		</span>Log.i("BaseActivity", "onResume");
<span style="white-space:pre">		</span>setTop(leftBtn, titleTv, rightTv, rightIv);
<span style="white-space:pre">	</span>}

子类在执行到onResume方法的时候调用父类的onResume方法,此时方法initTopLayout中的参数为子类的实例在方法initTopLayout中就可以得到子类布局中的各个控件。

public void initTopLayout(Activity act) {
		RelativeLayout rlTop = (RelativeLayout) act.findViewById(R.id.base_top);
		if (rlTop == null) {
			throw new RuntimeException("please inlucde layout common_title in Ur layout,and make sure the include id is @+id/common_title @+id/base_top");
		}
		this.leftBtn = (Button) rlTop.findViewById(R.id.btn_globaltop_leftbutton);
		this.titleTv = (TextView) rlTop.findViewById(R.id.tv_globaltop_title);
		this.rightTv = (TextView) rlTop.findViewById(R.id.tv_globaltop_righttext);
		this.rightIv = (ImageView) rlTop.findViewById(R.id.iv_globaltop_rightiv);
	}

在BaseActivity的onResume方法中的setTop(leftBtn, titleTv, rightTv, rightIv);为对各个或得到的控件属性进行设置的方法。

由于多态的特性,子类activity中实际执行子类的setTop方法

子类重写该方法,即可实现子类的个性化。

public void setTop(Button leftBtn, TextView titleTv, TextView rightTv, ImageView rightIv) {
		super.setTop(leftBtn, titleTv, rightTv, rightIv);
		enableBackBtn();
		rightIv.setVisibility(View.VISIBLE);
		rightIv.setImageResource(R.drawable.ibtn_selector_share);
		rightIv.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO:share
			}
		});
	}

同理的还有BaseFragment等的应用,也可以参照这种方法实现精简代码结构。

时间: 2024-09-29 04:35:30

<include>标签和BaseActivity联合使用简化代码结构的相关文章

[Android个人理解(六)]使用include标签的注意事项

我们在使用include标签时是为了提高部分代码的重用性,同时增加代码的层次性和条理性. 但是在我们实际使用的时候,往往就会由于include的属性和include的原理不够清楚,而产生bug. 1.首先,我们说明include标签所在布局文件a和include所包含的布局文件b的关系 必须明确a和b通过使用include连接,与其说是包含,更像是拼接.Include不是View类,自然与其内的布局对象,不是嵌套关系. 我们都清楚,我们可以将a中的include标签删去,直接复制粘贴b的代码,这

jstl标签库基础教程及其使用代码

概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standard Tag Library ).大多数 JSP 页面逻辑提供了实现的 JSTL 技术,该技术本身就是一个标签库. Sun 公司 Java 规范标准的 JSTL 由 apache jakarta 组织负责维护.作为开源的标准技术,它一直在不断地完善. JSTL 的发布包有两个版本: Stand

Android 布局中的include标签使用

Android 布局中的include标签使用 最近在布局时,有好多页面都是有共同特点的,比如标题:一个同样的样式! 如下图所示: 如果给每个页面都单独的写一个标题的布局那就太麻烦了,如果能写一个标题布局,其它页面重用该多好! 这个时候,<include> 就隆重登场了! 写一个标题的布局 title.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an

android中include标签使用详解

android中include标签是为了便于控件的覆用的一个很好解决方案. 但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看. include标签用法. 1.新建一个xml文件,命名 head.xml head.xml文件内容如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.

android中include标签的使用

转自:http://blog.sina.com.cn/s/blog_a364999b01017gxi.html android中include标签是为了便于控件的覆用的一个很好解决方案. 但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看. include标签用法. 1.新建一个xml文件,命名 head.xmlhead.xml文件内容如下:<?xml version="1.0" encoding="utf-8"?>&

mybatis include标签

使用mybatis 的include标签达到SQL片段达到代码复用的目的 示例: xml文件 <sql id="paysql"> payid,p.oid,p.bdate,p.lid,lname,p.uid,p.uids,username,p.fdate,p.ysprice,reprice,p.statues,p.flag,clockdate,p.remark,remethod </sql> <!-- 应收款项.未结清,当前用户 --> <sel

Android手机应用开发之include标签使用

android中include标签是为了便于控件的覆用的一个很好解决方案. 但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看. include标签用法. 1.新建一个xml文件,命名 head.xml head.xml文件内容如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.

Android Include标签

编程的世界有的时候很微妙,有的时候就好像是在解决一个哲学问题,Android开发的时候,所有的布局,颜色,等(其实这些都可以称之为资源,Android中的资源是指非代码部分,如图片.音频.视频.字符等资源,其实就是可以被代码所操作的一些对象)都可以用XML文件布局,而所有对这些XML的操作可以在相应的Activity中进行,这种分离似乎将程序员和美工进行分离. 一个系统中,往往会有重复的界面,或者被划分的可以复用的逻辑单元,这个时候的解决方法往往是,做好一个之后,然后进行Copy.android

Android里merge和include标签的使用

1.使用<include /> 标签来重用layout代码 如果在一个项目中需要用到相同的布局设计,可以通过<include /> 标签来重用layout代码,该标签在android开发文档中没有相关的介绍.在android主屏程序中 用到了这个标签: view plain ·········10········20········30········40········50········60········70········80········90········100···