android : 使用注解初始化控件

来源:互联网 发布:旅游网络市场调查 编辑:程序博客网 时间:2024/06/08 17:35

1  首先创建注解类


@Target(value = ElementType.FIELD)@Retention(value = RetentionPolicy.RUNTIME)public @interface Fid {public static final int EMPTY_ID = -1;int id() default EMPTY_ID;}

2 然后创建父类Activity 

public abstract class BaseActivity extends Activity {protected abstract int getContentViewRes();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(getContentViewRes());findAnnotationView();}private void findAnnotationView() {Field[] fs = getClass().getDeclaredFields();for (Field field : fs) {field.setAccessible(true);Fid fid = field.getAnnotation(Fid.class);if (fid != null) {int id = fid.id();if (id != Fid.EMPTY_ID)try {field.set(this, findViewById(id));} catch (Exception e) {}}}}

3 子类Activity :


public class MainActivity extends BaseActivity {@Fid(id = R.id.textview)private TextView textview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);textview.setText("找到了");}@Overrideprotected int getContentViewRes() {return R.layout.activity_main;}}
0 0
原创粉丝点击