Android依赖注入:Google Guice on Android

RoboGuice 使用谷歌自己的Guice库,给Android带来了简单和易用的依赖注入。如果你使用过Spring或Guice的话,你可能已经知道这种编程方式是多么的便捷。

RoboGuice 允许使用annotation 的方式来描述id于View之间的关系,其余的工作由roboGuice库来完成。比如:


[java] view plain copy
  1. class AndroidWay extends Activity {  

  2. TextView name;  

  3. ImageView thumbnail;  

  4. LocationManager loc;  

  5. Drawable icon;  

  6. String myName;  

  7. publicvoid onCreate(Bundle savedInstanceState) {  

  8. super.onCreate(savedInstanceState);  

  9. setContentView(R.layout.main);  

  10. name      = (TextView) findViewById(R.id.name);  

  11. thumbnail = (ImageView) findViewById(R.id.thumbnail);  

  12. loc       = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);  

  13. icon      = getResources().getDrawable(R.drawable.icon);  

  14. myName    = getString(R.string.app_name);  

  15. name.setText( "Hello, " + myName );  

  16. }  

  17. }  



如果使用roboguice 来写:


[java] view plain copy
  1. class RoboWay extends RoboActivity {  

  2. @InjectView(R.id.name)             TextView name;  

  3. @InjectView(R.id.thumbnail)        ImageView thumbnail;  

  4. @InjectResource(R.drawable.icon)   Drawable icon;  

  5. @InjectResource(R.string.app_name) String myName;  

  6. @Inject                            LocationManager loc;  

  7. publicvoid onCreate(Bundle savedInstanceState) {  

  8. super.onCreate(savedInstanceState);  

  9. setContentView(R.layout.main);  

  10. name.setText( "Hello, " + myName );  

  11. }  

  12. }  



只需使用@InjectView 来描述 view 和Id之间的关系,RoboGuice 自动完成余下的工作,代码简洁易读。


注意:activity必须继承自RoboActivity


收集到的一些资料:github有资料和源码https://github.com/roboguice/roboguice

中文的资料:http://daimajishu.iteye.com/blog/1610501



原文地址:http://blog.csdn.net/sangming/article/details/8878104


你可能感兴趣的:(编程,android,Google)