当前位置: 首页 > 工具软件 > RoboGuice > 使用案例 >

android roboguice2,Android代码注入框架RoboGuice

苏昂雄
2023-12-01

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,而不是维护着一堆堆的初始化、生命周期控制代码等。

 类似资料: