AndroidAnnotations简单示例

 

 

 1 @EActivity(R.layout.activity_main)
 2 public class MainActivity extends Activity {
 3 
 4     @ViewById(R.id.textView)
 5     TextView textView;
 6 
 7     @ViewById //不指定ID,默认以控件名进行查找
 8             Button button;
 9 
10 
11     @StringRes //获取资源文件值
12             String hello_world;
13 
14     @SystemService //实例化系统服务
15             NotificationManager notificationManager;
16 
17 
18     @SystemService
19     WindowManager windowManager;
20 
21     DisplayMetrics dm;
22 
23     @Click//事件控制,可以以按钮的id作为方法名
24     public void buttonClicked() {
25         textView.setText("值变了" + hello_world);
26         Toast.makeText(MainActivity.this, "hello ", Toast.LENGTH_LONG).show();
27 
28         someBackgroundWork("丽丽", 5);
29     }
30 
31     @AfterViews //初始化控件值
32     public void init() {
33         textView.setText("初始值 " + dm.widthPixels + " X " + dm.heightPixels);
34     }
35 
36     @Override
37     protected void onCreate(Bundle savedInstanceState) {
38         super.onCreate(savedInstanceState);
39 
40         dm = new DisplayMetrics();
41         windowManager.getDefaultDisplay().getMetrics(dm);
42     }
43 
44     @Background //开启新线程后台运行,而且返回值类型一定是void
45     void someBackgroundWork(String name, long timeToDoSomeLongComputation) {
46 
47         SystemClock.sleep(timeToDoSomeLongComputation);
48 
49         updateUi("hello " + name, Color.RED);
50         showNotificationsDelayed();
51     }
52 
53 
54     @UiThread
55         //UI线程
56     void updateUi(String message, int color) {
57 
58         textView.setText(message);
59         textView.setTextColor(color);
60 
61     }
62 
63 
64     @UiThread(delay = 2000)
65         //可以设置延时时间,以毫秒为单位
66     void showNotificationsDelayed() {
67         Notification notification = new Notification(R.mipmap.ic_launcher, "Hello !", 0);
68         PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), 0);
69         notification.setLatestEventInfo(getApplicationContext(), "My notification", "Hello World!", contentIntent);
70         notificationManager.notify(1, notification);
71     }
72 }

 

 

注意:

使用AndroidAnnotations,编译的时候会生成一个子类,这个子类的名称就是在原来的类之后加了一个下划线“_”,比如这个例子产生的子类名称为“MainActivity_”,这就需要你在注册这个Activity的时候,在

AndroidManifest.xml中将 MainActivity 改为 MainActivity_ ,使用的时候也是使用MainActivity_来表示此类,如

 1 startActivity(new Intent(this,MainActivity_.class));  

 

posted on 2015-11-18 17:19  屌丝迷途  阅读(198)  评论(0编辑  收藏  举报

导航