自己写一个布局注解


xUtils框架的注解相信大家都使用过,由于各种原因,项目需要自己写一个,所以mark一下


这是用法 基本和xUtils的一样

@HkContentView(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {



新建一个ContentView类

@Target(ElementType.TYPE)//注解目标    TYPE:类
@Retention(RetentionPolicy.RUNTIME)
public @interface HkContentView {
    int value();//接收布局id
}

主要代码:利用反射来完成(代码都有注释)

 /**
     * 传需注解activity
     *
     * @param activity
     */
    public static void HKinjectContentView(Activity activity) {
        Class activityClass = activity.getClass();//获取activity.class
        if (activityClass.isAnnotationPresent(HkContentView.class)) {//判断这个class有没有用注解
            // 得到activity这个类的ContentView注解
            HkContentView contentView = (HkContentView) activityClass.getAnnotation(HkContentView.class);//获取注解文件
            // 获取注解的值(布局ID)
            int layoutId = contentView.value();
            // 使用反射调用setContentView
            try {
                Method method = activityClass.getMethod("setContentView", int.class);
                //私有方法
                method.setAccessible(true);
                method.invoke(activity, layoutId);
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }

        }


    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值