AndroidAnnotation,android 计算器实验报告
@ViewById(R.id.btn)
public Button btn;
@Click(R.id.btn)
void myClick(){
Toast.makeText(this,"AndroidAnnotations",Toast.LENGTH_SHORT).show();
}
}
//还可以对多个按钮注解点击事件
@Click({R.id.button1,R.id.button2,R.id.button3})
void buttonClicked(Button btn){
switch(btn.getId()){
case R.id.button1:
//这里实现 button1 的点击事件
break;
...
}
}
4.@AfterViews:只有所有 View 都注入完毕之后,才会执行该注解的方法,一般进行一些初始化的操作
@EActivity(R.layout.activity_main)
public class MainActivity extends Activity {
@ViewById(R.id.btn)
public Button btn;
@Click(R.id.btn)
void myClick(){
Toast.makeText(this,"AndroidAnnotations",Toast.LENGTH_SHORT).show();
}
@AfterViews
void init(){
btn.setText("按钮注入完毕后才执行此方法");
}
}
5.@Extrs(String params):获得其它地方跳转过来时所传递过来的数据,括号中的字符串即为传递过来的数据的 key
Intent intent = new Intent(MainActivity.this,SecondActivity_.class);
Bundle bundle = new Bundle();
bundle.putString("hello","hello");
intent.putExtras(bundle);
startActivity(intent);
@Extra("hello")
String params;
6.@Background 和 @UiThread 这两个通常结合用,前一个用来写后台方法,后一个专注于 UI 控件的操作
@Background 作用:相当于用来进行后台操作的方法(比如请求网络资源,操作文件等等),被 Backgroung 注解的方法里面不能进行任何 UI 操作,否则会报错。
@Background
void httprequest(){
//进行 http 操作
//操作数据库
//操作文件
}
@UiThread 作用:相当于用来进行 UI 控件的操作,被 UiThread 注解的方法里面不能进行任何后台操作,否则会报错
@UiThread
void runinUI(){
Toast.makeText(this,"AndroidAnnotations",Toast.LENGTH_SHORT).show();
}
7.@EFragment:用来标识某个类属于 fragment 并指定到布局文件
@EFragment(R.layout.layout_myfragment)
public class MyFragment extends Fragment{
}
8.@FragmentArg:用来给当前 Fragment 接收别的地方传来的数据,给 myfragment 传递一个参数
@EActivity(R.layout.activity_main)
public class MainActivity extends Activity {
@ViewById(R.id.btn)
public Button btn;
@Clic
k(R.id.btn)
void myClick(){
MyFragment fragment = new MyFragment_();
Bundle bundle = new Bundle();
bundle.putString("hello","...");
//设置传递的参数
fragment.setArguments(bundle);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.content, fragment);
transaction.commit();
}
}
myfragment 接收一个 hello 的参数
@EFragment(R.layout.layout_myfragment)
public class MyFragment extends Fragment{
@FragmentArg("hello")
String params;
@AfterViews
void init(){
Toast.makeText(getActivity(), params, Toast.LENGTH_SHORT).show();
}
}
9.@StringRes(R.string.xxx):资源文件注解,相当于在 strings.xml 文件中设置了
<string name="app_name">My Application</string>
评论