`
zhangziyangup
  • 浏览: 1187159 次
文章分类
社区版块
存档分类
最新评论

为你的Android应用定制属于你的BaseActivity

 
阅读更多

相信大家在开发Android应用的过程中肯定碰到过很多重复的工作,写着重复的代码,有时候连布局文件也是一样,需要重复的劳动,那么这样对于我们程序来讲肯定是很累很繁琐的一件事,所以我们在写代码的时候是否需要去考虑让我们写更少的代码,程序员要学会偷懒,否则……..

在开发应用程序的时候我们的设计其实整体的样式是统一,那么我们就可以写一些公用的代码,这样对程序来讲也便于后面的维护,废话也不多说了,相信大家肯定也懂的,今天我分享给大家的就是定制一个属于自己的BaseActivity,这个BaseActivity主要封装了一些公用的代码,例如我们在开发过程中上面的那些标题和按钮肯定都要有的,所以我们可以把这些公用的都写在这个BaseActivity里,其他功能的Activity以后都继承这个BaseActivity.

先上效果图

效果图看了,大家是否有所启发或是有所了解呢?那么接下来就放BaseActivity里的核心代码咯:

/**
 * 继承于Activity用于以后方便管理
 * 
 * @author coder
 * 
 */
public class BaseActivity extends Activity {

	private View titleView;
	private TextView tv_title;
	private Button btn_left, btn_right;

	private LinearLayout ly_content;
	// 内容区域的布局
	private View contentView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);

		setContentView(R.layout.common_title);
		titleView = findViewById(R.id.titleView);
		tv_title = (TextView) titleView.findViewById(R.id.tv_title);
		btn_left = (Button) titleView.findViewById(R.id.btn_left);
		btn_right = (Button) titleView.findViewById(R.id.btn_right);

		ly_content = (LinearLayout) findViewById(R.id.ly_content);
	}

	/***
	 * 设置内容区域
	 * 
	 * @param resId
	 *            资源文件ID
	 */
	public void setContentLayout(int resId) {

		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		contentView = inflater.inflate(resId, null);
		LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		contentView.setLayoutParams(layoutParams);
		contentView.setBackgroundDrawable(null);
		if (null != ly_content) {
			ly_content.addView(contentView);
		}

	}

	/***
	 * 设置内容区域
	 * 
	 * @param view
	 *            View对象
	 */
	public void setContentLayout(View view) {
		if (null != ly_content) {
			ly_content.addView(view);
		}
	}

	/**
	 * 得到内容的View
	 * 
	 * @return
	 */
	public View getLyContentView() {

		return contentView;
	}

	/**
	 * 得到左边的按钮
	 * 
	 * @return
	 */
	public Button getbtn_left() {
		return btn_left;
	}

	/**
	 * 得到右边的按钮
	 * 
	 * @return
	 */
	public Button getbtn_right() {
		return btn_right;
	}

	/**
	 * 设置标题
	 * 
	 * @param title
	 */
	public void setTitle(String title) {

		if (null != tv_title) {
			tv_title.setText(title);
		}

	}

	/**
	 * 设置标题
	 * 
	 * @param resId
	 */
	public void setTitle(int resId) {
		tv_title.setText(getString(resId));
	}

	/**
	 * 设置左边按钮的图片资源
	 * 
	 * @param resId
	 */
	public void setbtn_leftRes(int resId) {
		if (null != btn_left) {
			btn_left.setBackgroundResource(resId);
		}

	}

	/**
	 * 设置左边按钮的图片资源
	 * 
	 * @param bm
	 */
	public void setbtn_leftRes(Drawable drawable) {
		if (null != btn_left) {
			btn_left.setBackgroundDrawable(drawable);
		}

	}

	/**
	 * 设置右边按钮的图片资源
	 * 
	 * @param resId
	 */
	public void setbtn_rightRes(int resId) {
		if (null != btn_right) {
			btn_right.setBackgroundResource(resId);
		}
	}

	/**
	 * 设置右边按钮的图片资源
	 * 
	 * @param drawable
	 */
	public void setbtn_rightRes(Drawable drawable) {
		if (null != btn_right) {
			btn_right.setBackgroundDrawable(drawable);
		}
	}

	/**
	 * 隐藏上方的标题栏
	 */
	public void hideTitleView() {

		if (null != titleView) {
			titleView.setVisibility(View.GONE);
		}
	}

	/**
	 * 隐藏左边的按钮
	 */
	public void hidebtn_left() {

		if (null != btn_left) {
			btn_left.setVisibility(View.GONE);
		}

	}

	/***
	 * 隐藏右边的按钮
	 */
	public void hidebtn_right() {
		if (null != btn_right) {
			btn_right.setVisibility(View.GONE);
		}

	}

	public BaseActivity() {

	}

}

接下来再给出其中的一个用法就可以了:

public class TwoBtnActivity extends BaseActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);

		setContentLayout(R.layout.two);

		//设置标题
		setTitle("两个按钮");



		// 为左边的按钮增加监听事件
		getbtn_left().setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				onBackPressed();

			}
		});

	}

}


好了大功告成了,这个万能的BaseActivity是不是很好用呀,希望这样的一个小小的分享能对大家有所帮助咯


如需转载引用请注明出处:http://blog.csdn.net/jiahui524


分享到:
评论

相关推荐

    BaseActivity

    在Android应用中,Activity是用户界面的主要组件,用于处理用户交互和展示UI。每个特定功能的Activity可能会有共有的初始化工作,如设置主题、布局、权限检查、数据加载等。这些共性操作可以通过BaseActivity来实现...

    Android-一个共享的开发框架包含各种实用的BaseActivity

    在Android应用开发中,开发者经常会面临重复编写相似代码的问题,比如初始化控件、处理网络请求、数据解析等。为了提高代码复用性、减少冗余和提升开发效率,开发框架应运而生。"Android-一个共享的开发框架包含各种...

    Android项目基类BaseActivity

    在Android应用开发中,`BaseActivity`是一种常见的做法,它是一个基础活动类,通常用于封装共性的功能,以便在其他具体活动(子类)中复用。通过创建`BaseActivity`,开发者可以避免代码重复,提高代码的可维护性和...

    自定义BaseActivity

    在Android应用开发中,`BaseActivity`是一种常见的设计模式,用于实现通用功能的基类,以便其他活动(Activities)可以继承它,从而避免在每个活动中重复编写相同的代码。这种做法有助于提升代码的复用性和可维护性...

    Android中BaseActivity自定义标题栏

    总之,自定义标题栏是Android应用开发中提高用户体验和界面美观度的一个重要环节。通过创建一个BaseActivity并实现必要的逻辑,我们可以轻松地在各个活动之间实现标题栏的统一风格和交互,同时保持代码的整洁和模块...

    Android基于retrofit封装的网络请求库以及baseActivity高度集成定制

    在Android应用中,通常会有一个基类` BaseActivity`,用于复用通用功能,如权限管理、状态栏设置等。在此项目中,可以将网络请求的调用方法集成到`BaseActivity`,如`doNetworkRequest()`,并且提供统一的回调处理...

    mvp封装+baseactivity封装.

    在Android应用开发中,Model-View-Presenter(MVP)模式是一种常见的设计模式,它将业务逻辑、数据处理和用户界面进行了分离,提高了代码的可读性和可维护性。MVP封装则是对这一模式的进一步优化,使得开发者可以更...

    Android快速开发之定制BaseTemplate

    在Android应用开发中,快速开发和代码复用是提高效率的关键。`BaseTemplate`是一种常见的设计模式,用于统一和简化应用程序中的基础组件,如Activity、Fragment和Application。本篇文章将探讨如何定制`BaseTemplate`...

    Android-BaseFramework是对BaseActivity与BaseFragment的整合库

    在Android应用开发中,基础框架的设计对于项目的可维护性和代码复用性至关重要。"Android-BaseFramework"就是这样一个专门针对BaseActivity和BaseFragment进行整合的库,旨在简化开发者的工作流程,提高开发效率。这...

    Android-LoadAnimTemplate这是一个集成加载动画的简易框架

    在Android应用开发中,动画效果是提升用户体验的重要一环,特别是在数据加载、界面切换等场景中,优雅的加载动画能够使用户感到等待的过程更加愉快。本文将深入探讨名为"LoadAnimTemplate"的Android简易框架,它专为...

    Android应用源码之百度推聊应用.zip

    《深入解析:Android应用源码——百度推聊应用》 在Android开发领域,研究和学习优秀的开源项目是提升技能的有效途径。本篇文章将基于“Android应用源码之百度推聊应用”的压缩包,深入探讨其背后的开发技术与设计...

    BaseActivity和toolBar简单使用和封装

    在Android应用开发中,`BaseActivity`和`ToolBar`是两个非常重要的概念,它们能够帮助开发者提高代码的复用性和可维护性。本篇将详细阐述`BaseActivity`和`ToolBar`的使用方法以及如何进行封装,以实现更加高效、...

    Android 通用标题栏 简单封装实现

    在Android应用开发中,标题栏(Toolbar)是用户界面中的重要组成部分,它为用户提供应用程序的标识、导航功能以及操作选项。本教程将详细介绍如何通过简单的封装实现一个适用于各种场景的通用标题栏。参考链接:...

    TopBaseActivity

    标题栏(Title Bar)在Android应用程序中扮演着重要的角色,它为用户提供应用标识、导航选项和操作入口。在`TopBaseActivity`中,开发者通常会实现以下关键功能: 1. **标题栏布局**:首先,`TopBaseActivity`会...

    Base:一些基本代码的库,例如 BaseAdapter、BaseActivity、BaseFragement

    在Android应用开发中,基础代码库常常被用来作为模板或者框架,帮助开发者快速构建应用程序,减少重复工作。标题提到的"Base:一些基本代码的库,例如 BaseAdapter、BaseActivity、BaseFragment",这些都是Android...

    Android-Base是针对于Android开发封装好一些常用的基类

    在Android应用开发中,基础类库的封装是提高开发效率和代码复用性的重要手段。"Android-Base"是一个专为Android开发设计的基类集合,它的目标是为开发者提供一系列预先封装好的常用组件和工具类,使得开发过程更加...

    android 实时监测网络常用工具类

    本篇将深入探讨"android 实时监测网络常用工具类",包括`NetWorkBroadcastReceiver`、`NetworkUtils`以及`BaseActivity`,并阐述它们在监测网络状态中的作用。 首先,`NetWorkBroadcastReceiver`是一个实现了...

    原创Android开发文章集合贴

    **为你的Android应用定制属于你的BaseActivity** - **知识点**: Activity生命周期管理、自定义Activity基类的方法和好处。 - **实践意义**: 通过创建一个通用的BaseActivity,可以简化Activity的管理和代码复用,...

    Android给所有Activity添加全局统一顶层菜单

    在Android应用开发中,有时我们需要为所有的Activity提供一个全局统一的菜单,以便用户可以在任何页面进行特定的操作。这个过程可以通过自定义一个BaseActivity并继承它来实现,将自定义的菜单逻辑封装在...

    Android学习之路——5.Activity子类

    在Android应用开发中,Activity是Android四大组件之一,它是用户界面的主要载体,负责与用户进行交互。本篇文章将深入探讨Activity的子类化及其在实际开发中的应用。通过子类化Activity,我们可以更好地组织代码,...

Global site tag (gtag.js) - Google Analytics