Android RoboGuice2使用指南(2) 第一个例子Hello World

本例实现的功能和例子Android RoboGuice 使用指南(2):第一个例子Hello World一样,所不同的是本例使用RoboGuice2.0 来实现。

下载新的RoboGuice库,Roboguice2.0 库有四个库组成,如下图所示:

库可以从 http://code.google.com/p/roboguice/下载。

2. 创建一个新Android项目,比如GuiceDemo,目标平台Android1.5以上。

3. 一般可以在该项目下添加一个libs目录,将两个jar文件拷到libs目 录下,然后通过: Project > Properties > Java Build Path > Libraries > Add JARs

注:从ADT17开始,添加的jar文件需放在libs 子目录下,可以参见升级到 ADT 17 出现dalvikvm: Unable to resolve superclass的问题

添加了对应guice 和roboguice库的引用之后,就可以开始编写第一个使用 roboguice2 的例子。

使用roboguice2 的步骤:

Roboguice2 中 不在含有RoboApplication 类,因此无需也不可能派生RoboApplication的子类 。这里重复一下HelloWorld 的Layout 和类说明

1. 在这个简单的例子中 ,它使用的Layout 定义如下:

<?xml version=”1.0″ encoding=” utf-8″?>

< LinearLayout xmlns:android=” http://schemas.android.com/apk/res/android”

android:orientation=” vertical”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

>

<TextView

android:id=”@+id/hello”

android:layout_width=”fill_parent”

android:layout_height=” wrap_content”

android:text=”@string/hello”

/>

< /LinearLayout>

我们定义了一个TextView ,它的id为hello.

假定 这个应用使用一个IGreetingService ,它有一个方法getGreeting() 返回一个字 符串,至于IGreetingService 如何实现,GuideDemo 不需要关心。

Dependency injection 设计模式的一个 核心原则为: Separate behavior from dependency resolution. 也就说将应用 需要实现的功能和其所依赖的服务或其它对象分离。 对本例来说GuiceDemo只要 知道它依赖于IGreetingService 服务,至于IGreetingService有谁实现 GuiceDemo并不需要知道。

在Roboguice 中使用@Inject 来表示这种依赖 关系。

public class GuiceDemo extends RoboActivity  {      

 @InjectView (R.id.hello) TextView helloLabel;
 @Inject IGreetingService greetingServce;      

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 helloLabel.setText(greetingServce.getGreetings());
 }
}

使用RoboGuice 的Activity需要从RoboActivity派生(RoboActivity 为Activity的子类).

使用@Inject标注greetingServce依赖于 IGreetingService服务

使用@InjectView表示helloLabel 依赖于R.id.hello (XML)

代码中没有创建greetingServce 对象的代码(如 new xxx()) 和为helloLabel 赋值的代码。这些值都可以Roboguice 自动创建和赋值注入 (Inject)到变量中。

为了说明问题,我们在代码中添加两个对 getGreetings的实现,一个为HelloWorld, 一个为HelloChina:

public 

class HelloChina implements IGreetingService{      

 @Override
 public String getGreetings() {
 return "Hello,China";
 }      

}      

public class HelloWorld implements IGreetingService{      

 @Override
 public String getGreetings() {
 return "Hello,World";
 }

}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, public
, 例子
一个
roboguice、roboguice3.0 使用、java第一个helloworld、roboworld、hello world,以便于您获取更多的相关知识。

时间: 2025-01-17 06:23:47

Android RoboGuice2使用指南(2) 第一个例子Hello World的相关文章

Android RoboGuice使用指南(2) 第一个例子Hello World

首先介绍一下如果将Guice 和RoboGuice 的库添加到项目中. 下载RoboGuice和guice-2.0-no_aop.jar(not guice-3.0),或者下载 创建一个新Android项目,比如GuiceDemo,目标平台Android1.5以上. 一般可以在该项目下添加一个lib目录,将两个jar文件拷到lib目录下,然后 通过: Project > Properties > Java Build Path > Libraries > Add External

Android RoboGuice2使用指南(4) 综合示例Astroboy

前面介绍了RogoGuice2.0的基本用法,其它使用可以参见RoboGuice1.1开发 指南,2.0中提供了对Fragment,View(自定义View中使用注入)的支持,本博 客不再一一介绍. 本例使用的是RoboGuice 开发包中的简单示例 Astroboy(阿童木).涉及的使用RoboGuice2.0 的一些常用方法. 本例 下载(Eclipse项目). 下面对项目中RoboGuice2的使用进行解释.因为 本例没使用自定义绑定,所以无需使用res/values/roboguice.

Android RoboGuice2使用指南(3) Inject自定义View

前面介绍了Android RoboGuice2 的HelloWorld示例,并介绍了从RoboGuice 1.1 升级到RoboGuice2.0 的主要注意事项. 本例介绍如何Inject自定义 的View,Inject自定义的View和Android自带的View(如TextView,Button)方 法一样. 本例使用一个自定义的TextView,每隔1秒显示当前时间.前定 义如下: //--------------------------------- PACKAGE -------- -

Android RoboGuice2使用指南(1) 概述

RoboGuice最近推出了2.0版本.和1.1相比具有: 提高了稳定性 支持Fragment 更简洁易用 但由于RoboGuice2 不完全向下兼容RoboGuice1.1,因此原来使用 RobuGuice1.1开发的项目需要对代码做些修改才可以使用RoboGuice2.0. 这里主要说明一下使用Eclipse IDE开发环境升级到RoboGuice2.0 的一些升级注 意事项: 1. 下载新的RoboGuice库,Roboguice2.0 库有四个库组成,如 下图所示: 库可以从 http:

Android RoboGuice使用指南(14) Inject View

在例子Android RoboGuice 使用指南(2):第一个例子Hello World 介绍了使用 Roboguice开发的基本步骤: 创建一个RoboApplication 的子类GuiceApplication,GuiceApplication为 Appliacation的子类,修改AndroidManifest.xml,将Application 的name 指向这 个类. 将原先由Activity派生的类基类改为RoboActivity(或其它相关 Activity). 如果有需要的话

Android RoboGuice使用指南(13) RoboGuice功能描述

前面在Android RoboGuice 使用指南(1):概述 对应Roboguice做了简要的介绍 ,之后介绍了Google Guice的基本用法,Roboguice是基本Android和Google Guice开发的适用于Android平台的Dependency Injection 开发包,下图为使用 Roboguice开发应用的基本框图: Android应用程序可以直接使用Google Guice来为普通类进行注入操作,而对 和Android平台相关的类如Activity,Context,

《Java和Android开发学习指南(第2版)》——第2章,第2.1节ASCII和Unicode

第2章 语言基础Java和Android开发学习指南(第2版)Java是一种面向对象编程语言,因此,理解OOP非常重要.第4章是本书的第一个关于OOP内容的一章.然而,在了解OOP功能和技术之前,应该先学习Java语言的基础知识. 2.1 ASCII和Unicode传统上,英语国家的计算机只使用美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)字符来表示字母和数字字符.ASCII中的每个字符都用7位来表示.因此

Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)

光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBox版[VirtualBox-4.2.10-84105]) Ubuntu10.04 VirtualBox版 分卷1 分卷2 分卷3 分卷4 分卷5 分卷6   用户名:root 秘密:12345678   <Android开发权威指南(第二版)>是畅销书<Android开发权威指南>的升

Android RoboGuice使用指南(15) Inject Context

在Android应用程序中,很多地方需要引用到Context对象(Activity, Application,Service等).Roboguice 使得引用Context对象变得非常容易. 可以参见下面例子,这里定义一个不在Activity中的类ContextInfo,需 要引用Context对象: class ContextInfo{ final Context context; @Inject ContextInfo(Context context){ this.context=conte