歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android依賴注入:Google Guice on Android

Android依賴注入:Google Guice on Android

日期:2017/3/1 9:57:41   编辑:Linux編程

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