-
AndroidAnnotations
配置:https://github.com/androidannotations/androidannotations/wiki/Configuration
在当前gradle中配置并下载
在使用的时候,需要在AndroidManifest.xml中对每个activity或者servic的名字后面加一个 _ ,不然会找不到id。
@EActivity
必须要有一个layout id来表示这个Activity所使用的布局,用来替代setContentView的操作。
@ViewById
和原来的findViewById()方法一样,后面可以跟上每个view id,用来替代组件的初始化操作,值得注意的是:@ViewById后的id是可以不写的,条件是组件变量名称要与xml中定义的id必须一致(方法2)。
@AfterViews
表示在组件初始化完成后在执行,更新组件状态的方法必须加上这个注解,否则会出现空指针。
@Click
表示点击事件,用来完成组件的点击事件的操作。
@Extra
如果Activity中存在跳转传值,可以在接收值的Activity中用此标签获取Intent中传递的值。如果接收不到这个key对应的value,也没问题,你可以设置默认值。再有就是强转失败也不会造成crash,比如传递的是个int值,接收的时候是个String,也没有问题,只是接收失败罢了。
@Extra(MainActivity.NAME_KEY)
String mName;
@Extra(MainActivity.AGE_KEY)
String mAge;
@SystemService
获取系统服务注解。
@Background
处理后台耗时操作,在子线程中执行。
@UiThread
处理在UI线程中的操作。
更新UI的例子:
@Background
void timetektek() {
while (!timetaker) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
setbtntext();
}
}
@UiThread
void setbtntext() {
count = timecount++;
btn.setText(count + "");
Log.e("11111", count + "");
}
@StringRes
引用String中的资源。
@OnActivityResult()
代替startActivityForResult(Intent,int),可以接收从另一个Activity返回的值
Activity1:
Intent intent = new Intent(MainActivity.this, Main2Activity_.class); intent.putExtra(REQUEST, "I am a intent"); startActivityForResult(intent, REQUEST_CODE);
Activity2:@OnActivityResult(REQUEST_CODE) void onResult(int resultCode, Intent data) { if (resultCode == 1) { text4.setText(data.getStringExtra("data")); } }
Intent intent = new Intent(); intent.putExtra("data", "data"); setResult(1, intent); finish();