天天看点

xUtils系列之ViewUtils-ContentView注解

ContentView注解的定义:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ContentView {
    int value();
}
           

ViewUtils中的注解部分:

Class<?> handlerType = handler.getClass();
// inject ContentView
ContentView contentView = handlerType.getAnnotation(ContentView.class);
if (contentView != null) {
    try {
        Method setContentViewMethod = handlerType.getMethod("setContentView", int.class);
        setContentViewMethod.invoke(handler, contentView.value());
    } catch (Throwable e) {
        LogUtils.e(e.getMessage(), e);
    }
}
           

使用方法:

@ContentView(R.layout.activity_main)  //因为只有一个属性且属性名为value,所以可以忽略属性名
public class MainActivity extends Activity {


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		ViewUtils.inject(this);
	}
}
           

继续阅读