AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
来源:互联网 发布:金山手机数据恢复 编辑:程序博客网 时间:2024/06/05 20:50
AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
使用@EBean的JavaBean,能直接取到调用他的Context,支持@ViewById标签找到控件,因此,构造方法传过来的参数可以少很多。
上代码:
- package com.example.androidannotations;
- import android.content.Context;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.googlecode.androidannotations.annotations.AfterInject;
- import com.googlecode.androidannotations.annotations.Background;
- import com.googlecode.androidannotations.annotations.EBean;
- import com.googlecode.androidannotations.annotations.RootContext;
- import com.googlecode.androidannotations.annotations.UiThread;
- import com.googlecode.androidannotations.annotations.ViewById;
- @EBean
- public class Student {
- //RootContext能取到调用该Bean的Context,构造方法不再需要传Context参数
- @RootContext
- Context context;
- @RootContext
- MainActivity activity;
- //ViewById也能在这里直接使用
- @ViewById
- TextView tv;
- public void Toast()
- {
- Toast.makeText(context, "在Ebean中调用", Toast.LENGTH_LONG).show();
- }
- //后台线程执行
- @Background
- public void backThread()
- {
- for(int i=0;i<9999;i++)
- {
- try {
- Thread.sleep(1000);
- //activity.updateTv(i);
- //更新UI,调用在UI线程执行的方法
- updateTv(i);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- //UiThread在UI线程执行
- @UiThread
- public void updateTv(int i)
- {
- tv.setText(String.valueOf(i));
- }
- //AfterInject在构造方法执行完成后执行
- @AfterInject
- public void doSomethingAfterInject()
- {
- System.out.println("Student AfterInject");
- }
- }
在Activity中的调用方法:
- package com.example.androidannotations;
- import android.app.Activity;
- import android.text.Editable;
- import android.widget.EditText;
- import android.widget.TextView;
- import com.googlecode.androidannotations.annotations.AfterTextChange;
- import com.googlecode.androidannotations.annotations.AfterViews;
- import com.googlecode.androidannotations.annotations.Bean;
- import com.googlecode.androidannotations.annotations.Click;
- import com.googlecode.androidannotations.annotations.EActivity;
- import com.googlecode.androidannotations.annotations.Fullscreen;
- import com.googlecode.androidannotations.annotations.NoTitle;
- import com.googlecode.androidannotations.annotations.UiThread;
- import com.googlecode.androidannotations.annotations.ViewById;
- import com.googlecode.androidannotations.annotations.res.StringRes;
- //Eactivity注释可以设置Layout,相当于setConentView方法
- @EActivity(R.layout.activity_main)
- @Fullscreen
- @NoTitle
- public class MainActivity extends Activity {
- //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)
- @ViewById
- TextView tv;
- @ViewById
- EditText edit;
- @StringRes(R.string.hello_world)
- String hello;
- //需要使用@Bean标签
- @Bean
- Student stu;
- //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行
- @AfterViews
- void init()
- {
- tv.setText("asfsdf");
- }
- //在EditText内容改变时,更新TextView内容
- @AfterTextChange(R.id.edit)
- void afterEditChange(Editable text, TextView hello)
- {
- tv.setText(hello.getText());
- }
- //点击TextView时调用
- @Click(R.id.tv)
- void tvClicked()
- {
- stu.Toast();
- stu.backThread();
- }
- //在stu中也可以回调这个方法来更新UI
- @UiThread
- public void updateTv(int i)
- {
- tv.setText(String.valueOf(i));
- }
- }
0 0
- AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
- AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
- androidannotations的background和UiThread配合使用参考
- [AndroidAnnotations框架]AndroidAnnotations的配置
- AndroidAnnotations框架的使用详解
- @AfterInject与@AfterViews的区别
- AndroidAnnotations标签
- AndroidAnnotations框架
- AndroidAnnotations框架
- AndroidAnnotations框架
- AndroidAnnotations框架
- css background属性的使用方法
- ebean的学习
- android:Background线程池和UiThread线程池
- androidstudio中androidannotations框架的配置
- Android开发之AndroidAnnotations框架的使用
- AndroidAnnotations框架的部署及实现过程
- 学习CSS中background-position的使用方法
- 【Hadoop系列】第二章:安装Hadoop(下)集群版Hadoop
- ES6详解一:复习ES5 新增内容
- LA3882 约瑟夫问题变形
- 第1周编程题-表示分数类的Fraction
- android小错误:Failure retrieving text 0x7f050001 in package
- AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
- POJ 2492 A Bug's Life
- Java多线程-并发协作(生产者消费者模型)
- SpringMVC Controller 介绍
- 【操作系统】如何用程序确定当前系统的存储模式
- 欢迎给我发邮件
- WINCE 程序自启动设置总结
- 【二】关于界面设计和监听实现
- pandas重写Q5