美文网首页安卓开发
安卓自定义注解入门-1

安卓自定义注解入门-1

作者: 蓝不蓝编程 | 来源:发表于2020-08-28 18:24 被阅读0次

    目标

    熟悉注解的基本使用方法.
    本文以替代activity中setContentView函数为例.

    主要代码

    1. 定义注解
    @kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
    @Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS)
    annotation class ContentView(val value: Int = 0)
    
    1. 增加注解处理类
    object InjectionUtil {
        fun setContentViewFor(obj: Any) {
            if (obj is Activity) {
                val contentResId = obj.javaClass.getAnnotation(ContentView::class.java)?.value
                if (contentResId != null && contentResId != 0) {
                    obj.setContentView(contentResId)
                }
            }
        }
    }
    
    1. 使用注解
    open class BaseActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            InjectionUtil.setContentViewFor(this)
        }
    }
    
    @ContentView(value = R.layout.activity_main)
    class MainActivity : BaseActivity()
    

    完整源代码

    https://gitee.com/cxyzy1/annotation-demo

    相关文章

      网友评论

        本文标题:安卓自定义注解入门-1

        本文链接:https://www.haomeiwen.com/subject/itxrsktx.html