安卓开发

安卓自定义注解入门-1

2020-08-28  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读