资料描述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

    

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

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

文章结束给大家分享下程序员的一些笑话语录: IBM和波音777
  波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
  波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”

posted @ 2013-05-03 19:55  坚固66  阅读(288)  评论(0编辑  收藏  举报