Butter详解

import android.app.Activity;
import android.view.View;

import com.bwie.yanzhenrui0325.view.interfaces.FindViewById;

import java.lang.reflect.Field;

/**
 * 
 * @Date: 2019/3/25 13:18:19
 * @Description:
 */
public class Butter {
    public static void parse(Activity activity) {
        Class<? extends Activity> aClass = activity.getClass();
        Field[] declaredFields = aClass.getDeclaredFields();
        for (Field field : declaredFields) {
            boolean annotationPresent = field.isAnnotationPresent(FindViewById.class);
            if (annotationPresent) {
                FindViewById annotation = field.getAnnotation(FindViewById.class);
                int value = annotation.value();
                View viewById = activity.findViewById(value);
                field.setAccessible(true);
                try {
                    field.set(activity,viewById);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**

 * @Date: 2019/3/25 13:21:11
 * @Description:
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface  FindViewById {
     int value();
}
    Butter.parse(this);

猜你喜欢

转载自blog.csdn.net/qq_40432465/article/details/88940605