android roboguice2,Android代码注入框架RoboGuice

本文介绍了RoboGuice2如何通过依赖注入简化Android开发,提升代码可读性和减少bug,通过实例展示了如何在活动中注入View、Resource和SystemService,以精简初始化代码和关注核心业务逻辑。
摘要由CSDN通过智能技术生成

Android代码注入框架RoboGuice

概述

RoboGuice 2可以让我们更方便、快捷地编写android代码。在写android代码时,我们在使用getIntent().getExtras()可能会忘记判空,findViewById()必须强制转换成TextView很别扭?RobotGuice 2可以帮我们省掉这些步骤。

RoboGuice 2可以注入到View,Resource,System Service或者其他任何对象中,我们不必在关心这些细节。

使用RoboGuice 2可以精简我们的代码,这样会减少bug数量,也使程序更加易读。在编码中,我们可以把精力更多地放在业务逻辑上。

使用方法

RobotGuice使用google自己的Guice,让安卓支持依赖注入,类似于Spring。

传统的android代码如下:

class AndroidWay extends Activity {

TextView name;

ImageView thumbnail;

LocationManager loc;

Drawable icon;

String myName;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

name = (TextView) findViewById(R.id.name);

thumbnail = (ImageView) findViewById(R.id.thumbnail);

loc = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);

icon = getResources().getDrawable(R.drawable.icon);

myName = getString(R.string.app_name);

name.setText( "Hello, " + myName );

}

}

上面的代码共19行。如果我们想阅读onCreate()方法,得略过上面的变量初始化区域,其实onCreate方法就一样代码name.setText(),代码看起来很臃肿。

下面是使用RoboGuice的代码:

@ContentView(R.layout.main)

class RoboWay extends RoboActivity {

@InjectView(R.id.name) TextView name;

@InjectView(R.id.thumbnail) ImageView thumbnail;

@InjectResource(R.drawable.icon) Drawable icon;

@InjectResource(R.string.app_name) String myName;

@Inject LocationManager loc;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

name.setText( "Hello, " + myName );

}

}

这个例子中,onCreate()方法就简洁多了,所有初始化代码都被移除,只剩下我们的业务逻辑代码。需要SystemServce?注入即可。需要View或者Resource?注入即可,RoboGuice会帮我们实现那些细节。

RoboGuice的目标是让我们的代码真正关乎于app,而不是维护着一堆堆的初始化、生命周期控制代码等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值