zoukankan      html  css  js  c++  java
  • 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));  

  • 相关阅读:
    守护进程、互斥锁、生产者消费者模型
    实现并发编程的基础理论
    udp协议
    进程与进程池
    tcp协议产生-粘包问题的解决方案
    day21面向对象_类
    day16_面向过程编程与模块导入
    day15_函数递归_匿名函数_内置函数
    三、运算符(阶段二)
    二、(续)基础语法--常量、变量和注释(阶段二)
  • 原文地址:https://www.cnblogs.com/l2rf/p/4975207.html
Copyright © 2011-2022 走看看