日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RoboGuice入门

發布時間:2024/4/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RoboGuice入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

讓我們來看看各種RoboGuice 庫的使用方法。

使用RoboGuice庫 :

  • 控件注入:用@InjectViews方法初始化控件,例如:@InjectView(R.id.textview1)TextView textView1。

  • 資源注入:用@InjectResources方法初始化資源,例如:@InjectResource(R.string.app_name)String name。

  • 系統服務注入:用@Inject方法初始化并獲取系統服務,例如:@Inject LayoutInflater inflater。

  • POJO對象注入:用@Inject方法注入并初始化POJO對象,例如:@Inject Foo foo。

安裝

要使用RoboGuice,你需要下載JAR文件并把他們添加到環境變量中:

  • http://repo1.maven.org/maven2/org/roboguice/roboguice/2.0/roboguice-2.0.jar

  • http://repo1.maven.org/maven2/com/google/inject/guice/3.0/guice-3.0-no_aop.jar

  • http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar

我們來看看一個簡單的一般事件代碼:

public?class?TestActivity?extends?Activity{TextView?textView1;TextView?textView2;ImageView?imageView1;String?name;Drawable?icLauncher;LocationManager?locManager;LayoutInflater?inflater;NotificationManager?notifyManager;@Overrideprotected?void?onCreate(Bundle?savedInstanceState)?{//?TODO?Auto-generated?method?stubsuper.onCreate(savedInstanceState);setContentView(R.layout.layout_test);textView1?=?(TextView)?findViewById(R.id.textView1);textView2?=?(TextView)?findViewById(R.id.textView2);imageView1?=?(ImageView)?findViewById(R.id.imageView1);name?=?getString(R.string.app_name);icLauncher?=?getResources().getDrawable(R.id.ic_launcher);locManager?=?(LocationManager)?getSystemService(Activity.LOCATION_SERVICE);inflater?=?(LayoutInflater)?getSystemService(Activity.LAYOUT_INFLATER_SERVICE);notifyManager?=?(NotificationManager)?getSystemService(Activity.NOTIFICATION_SERVICE);textView1.setText("Hello?World!?RoboGuice?demo");} }

?



再看看使用RoboGuice精簡代碼后神奇之處。

使用RoboGuice

你先要繼承RoboActivity或者RoboFragment,才能使用RoboGuice的依賴注入功能。

public?class?TestActivity?extends?RoboActivity{@InjectView(R.id.textView1)?TextView?textView1;@InjectView(R.id.textView2)?TextView?textView2;@InjectView(R.id.imageView1)?ImageView?imageView1;@InjectResource(R.string.app_name)?String?name;@InjectResource(R.drawable.ic_launcher)?Drawable?icLauncher;@Inject?LocationManager?locManager;@Inject?LayoutInflater?inflater;@Inject?NotificationManager?notifyManager;@Overrideprotected?void?onCreate(Bundle?savedInstanceState)?{//?TODO?Auto-generated?method?stubsuper.onCreate(savedInstanceState);setContentView(R.layout.layout_test);textView1.setText(name);}

?


這么一對比,我想你肯定明白了為什么要使用RoboGuice?再來看看有哪些好處:

使用RoboGuice的好處

  • 不需要初始化控件,如有需要就用@InjectViews。

  • 不需要初始化系統服務,如有需要就用@Inject。

  • 不需要初始化像Drawable,string以及其他的資源,如有需要就用@InjectResource。

  • 以上實踐能幫助你精簡代碼。

  • 越少的代碼,越少的問題和bugs。

  • 少量的代碼讓Android開發人員省力同時,也讓他們能更專注于實際的業務邏輯。

RoboGuice和ActionBarSherlock

正如我前面提到的,你得在RoboActivity和RoboFragment中繼承其中一個才能在Activity事件或Fragment中使用RoboGuice。但是如果你已經在項目中使用了ActionBarSherlock去編譯呢?那問題就在于,你已經繼承了SherlockActivity或SherlockFragmentActivity中的一個?,F在問題是,你不能同時使用RoboGuice和ActionBarSherlock。

解決方法是,為Activities和Fragments定義一個基類。然后你就能同時使用RoboGuice和ActionBarSherlock了。

你可以在這里下載一些基類:

https://github.com/rtyley/roboguice-sherlock?或者下載JAR包也是一樣:RoboGuice+Sherlock.jar,你可以任選一個添加到你的項目。

在Android應用程序中,我想我已經做了所有關于RoboGuice用法及好處的研究。如過有什么遺漏,請聯系我。在接下來的文章,我會研究其他的函數庫好讓你成為一個既能偷懶又高效的Android開發人員。

原文:http://mjava.org/1506.shtml




轉載于:https://my.oschina.net/u/256102/blog/203199

總結

以上是生活随笔為你收集整理的RoboGuice入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。