歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android依賴注入:Google Guice on Android

RoboGuice 使用谷歌自己的Guice庫,給Android帶來了簡單和易用的依賴注入。如果你使用過Spring或Guice的話,你可能已經知道這種編程方式是多麼的便捷。
 
RoboGuice 允許使用annotation 的方式來描述id於View之間的關系,其余的工作由roboGuice庫來完成。比如:

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 );
 }
}

如果使用roboguice 來寫:

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);
 setContentView(R.layout.main);
 name.setText( "Hello, " + myName );
 }
}

只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。

注意:activity必須繼承自RoboActivity

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved