在例子Android RoboGuice 使用指南(2):第一个例子Hello World 介绍了使用 Roboguice开发的基本步骤:
创建一个RoboApplication 的子类GuiceApplication,GuiceApplication为 Appliacation的子类,修改AndroidManifest.xml,将Application 的name 指向这 个类。
将原先由Activity派生的类基类改为RoboActivity(或其它相关 Activity).
如果有需要的话在AbstractAndroidModule 中重载configuatation方法定义 bindings.
如果不使用Roboguice,如果Activity中需要访问定义在Layout中的某个View ,一般需要使用findViewById 来查找对应的View,并将它强制转换为对应的类, 如果需要访问的View很多,重复的代码就非常繁琐。
如果使用Roboguice 的Inject View ,代码就简洁易读多了,@Inject View的基本用法如下:
@InjectView (R.id.xxx) ViewType viewInstance;
R.id.xxx 为所需View定义在Layout中的id ,如R.id.textview1
ViewType 为所需View的类型,如TextView
viewInstance 为变量名。
我们定义一个injectview.xml ,如下:
<?xml version=”1.0″ encoding=”utf-8″?>
< LinearLayout
xmlns:android=” http://schemas.android.com/apk/res/android”
android:orientation=” vertical”
android:layout_width=”match_parent”
android:layout_height=”match_parent” >
<TextView
android:id=”@+id/textview1″
android:layout_width=”fill_parent”
android:layout_height=” wrap_content”
android:text=”@string/injectview”
/>
<TextView
android:id=”@+id/textview2″
android:layout_width=”fill_parent”
android:layout_height=” wrap_content”
android:text=”@string/injectview”
/>
<TextView
android:id=”@+id/textview3″
android:layout_width=”fill_parent”
android:layout_height=” wrap_content”
android:text=”@string/injectview”
/>
<TextView
android:id=”@+id/textview4″
android:layout_width=”fill_parent”
android:layout_height=” wrap_content”
android:text=”@string/injectview”
/>
<Button android:id=”@+id/button”
android:layout_width=”wrap_content”
android:layout_height=” wrap_content”
android:layout_gravity=”center_vertical”
android:text=” @string/clickmebutton”/>
</LinearLayout>