Activity以及fragment的简单重写

2 篇文章 0 订阅
1 篇文章 0 订阅

对于软件开发上的一些思考。

估计所有的程序每天都会写很多的重复的代码,不知道写这些代码的时候有没有去思考。如何才能少些一些代码而且又能提高效率呢。

问题

1,每天大量重复的代码

2,每次代码都重新写出错的概率很高

3,浪费大量的时间(有这些时间我们可以思考一些新的问题,学习一些新的技术或者多休息休息,泡泡妞也是可以的啊)

解决办法

1,最低级办法就是去copy 这些代码。

2,将代码利用继承抽象等技术将一些公共的代码抽取出来,将变化的东西抽象出来。

第一种办法就不说了,是程序员都知道怎么做对吧。

下面说下第二种办法,就以activity 和 fragment为例来说   大大的提高我们的开发效率。

直接上代码:

package com.example.androidtest.base;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
/**
 * 将activity 中经常写的代码 进行格式化
 * @author 曹阳龙
 * 
 * 2015-9-13
 */
public abstract class BaseActivity extends Activity{
    //资源管理
	protected Resources resources;
	//上下环境  
    protected Context context;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		beforeSetContent();
		setContentView(getcontentView());
		context = this;
		resources = getResources();
		onCreate();
	}
	/**
	 * 用于设置布局文件
	 * @return
	 */
	public abstract int getcontentView();
	/**
	 * oncreat 改为内部执行
	 */
	private void onCreate(){
		initView();
		initData();
		initListener();
	}
	/**
	 * 提供这个方法原因  ,  主要  有一些代码需要在  setcontent 之前调用  如 : window窗口的设置
	 */
	public void beforeSetContent(){
		
	}
	
	/**
	 * 首次   必先初始化  view 
	 */
	public abstract void initView();
	/**
	 * 初始化数据   从网络 获取数据  数据添加到  view  等逻辑 工作
	 */
	public abstract void initData();
	/**
	 * 初始化  view listener 的工作
	 */
	public abstract void initListener();
}
下面是basefragment 的代码   其实和上面基本上差不多

package com.cyl.androidtest.base;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
 * fragment  代码进行格式化
 * @author 曹阳龙
 * 
 * 2015-9-13
 */
public abstract class BaseFragment extends Fragment {
    protected Context context;
    @Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		return inflater.inflate(setContentView(), container, false);
	}
	@Override
	public void onViewCreated(View view, Bundle savedInstanceState) {
		context = view.getContext();
		onViewCreated(view);
	}
	public Context getContext() {
		return context;
	}
	public void onViewCreated(View view){
		initView(view);
		initData();
		initListener();
	}
	public abstract int setContentView();
	
	/**
	 * 首次   必先初始化  view 
	 */
	public abstract void initView(View view);
	/**
	 * 初始化数据   从网络 获取数据  数据添加到  view  等逻辑 工作
	 */
	public abstract void initData();
	/**
	 * 初始化  view listener 的工作
	 */
	public abstract void initListener();
}


其实上面的代码很好理解,我们简单看下注视就可以了,然后在项目快速开发的时候,我们只要继承与baseActivity活baseFragment  实现对应的  抽象方法,initview 中 获取对应的组建实例就ok,  在initdata 中可以写一些数据的初始化。initListener我们可以在这里写我们需要实现的响应事件。

对于baseactivity 简单写个例子。

package com.example.androidtest;

import com.example.androidtest.base.BaseActivity;
/**
 * 在这里继承与baseActivity   对应的方法  ide 就会直接生成了  我只需要写我们的业务逻辑代码就 ok了
 * @author cyl
 *
 * 2016-2-12
 */
public class TestBaseActivity extends BaseActivity {

	@Override
	public int getcontentView() {
		//这里写我们的布局文件
		return R.layout.test_activity_layout;
	}

	@Override
	public void initView() {
		//这里 findviewbyid 初始化组建  button  textview  viewpager imageview  等等
	}

	@Override
	public void initData() {
		//settext   初始化 view上的数据  ,从网络获取数据
	}

	@Override
	public void initListener() {
		//给组建设置  响应的事件
	}

}

今天就说到这里。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值