当前位置: 首页 > news >正文

网站开发可选的方案有深圳哪个网站建设公司好

网站开发可选的方案有,深圳哪个网站建设公司好,网站开发需要注意的问题,江苏建设标准网站文章目录 Android Kotlin版封装EventBus代码封装添加依赖库定义消息类定义常量值定义注解定义工具类 使用在Activity中在Fragment中发送事件 源码下载 Android Kotlin版封装EventBus 代码封装 添加依赖库 implementation("org.greenrobot:eventbus:3.3.1")定义消息…

文章目录

  • Android Kotlin版封装EventBus
    • 代码封装
      • 添加依赖库
      • 定义消息类
      • 定义常量值
      • 定义注解
      • 定义工具类
    • 使用
      • 在Activity中
      • 在Fragment中
      • 发送事件
    • 源码下载

Android Kotlin版封装EventBus

代码封装

添加依赖库

implementation("org.greenrobot:eventbus:3.3.1")

定义消息类

class MessageEvent<T> {var code: Intvar data: T? = nullconstructor(code: Int) {this.code = code}constructor(code: Int, data: T) {this.code = codethis.data = data}
}

定义常量值

object MessageEventCode {const val REFRESH = 0xB001 //刷新const val DELETE = 0xB002 //删除const val ADD = 0xB003 //增加
}

定义注解

@Target(AnnotationTarget.TYPE, AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class BindEventBus

定义工具类

object EventBusUtils {/*** 注册*/fun register(subscriber: Any) {EventBus.getDefault().register(subscriber)}/*** 取消注册*/fun unregister(subscriber: Any) {EventBus.getDefault().unregister(subscriber)}/*** 发送普通事件*/fun post(event: MessageEvent<*>) {EventBus.getDefault().post(event)}/*** 发送粘性事件*/fun postSticky(event: MessageEvent<*>) {EventBus.getDefault().postSticky(event)}/*** 判断是否注册Eventbus*/fun isRegister(clz: Any): Boolean {return clz.javaClass.isAnnotationPresent(BindEventBus::class.java)}
}

使用

在Activity中

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_event_bus)if (EventBusUtils.isRegister(this)) {EventBusUtils.register(this)}
}@Subscribe(threadMode = ThreadMode.MAIN)
fun onMessageEvent(event: MessageEvent<*>) {when (event.code) {MessageEventCode.REFRESH -> {tvMessage.text = "刷新数据"}MessageEventCode.DELETE -> {tvMessage.text = "删除数据"}MessageEventCode.ADD -> {tvMessage.text = "添加数据:${event.data}"}}
}override fun onDestroy() {super.onDestroy()if (EventBusUtils.isRegister(this)) {EventBusUtils.unregister(this)}
}

在Fragment中

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)if (EventBusUtils.isRegister(this)) {EventBusUtils.register(this)}
}@Subscribe(threadMode = ThreadMode.MAIN)
fun onMessageEvent(event: MessageEvent<*>) {when (event.code) {MessageEventCode.REFRESH -> {tvMessage.text = "刷新数据"}MessageEventCode.DELETE -> {tvMessage.text = "删除数据"}MessageEventCode.ADD -> {tvMessage.text = "添加数据:${event.data}"}}
}override fun onDestroyView() {super.onDestroyView()if (EventBusUtils.isRegister(this)) {EventBusUtils.unregister(this)}
}

发送事件

EventBusUtils.post(MessageEvent<Nothing>(MessageEventCode.REFRESH))
EventBusUtils.post(MessageEvent<Nothing>(MessageEventCode.DELETE))
EventBusUtils.post(MessageEvent(MessageEventCode.ADD, "hello world"))

源码下载

http://www.15wanjia.com/news/188557.html

相关文章:

  • 静态网站有什么用网站设计app
  • 舆情分析seo 页面链接优化
  • 网站用词精准性建一个公司网站要多少钱
  • 正规的品牌网站建设服务做速卖通要关注的几个网站
  • 经典的高端网站建设公司着陆页设计如何在网站网站做代理
  • 建筑工程找工作哪个网站好定制型网站设计
  • 凡科做的网站外贸网站空间
  • 网站个人简介怎么做流量卡套餐
  • 网站整体风格类似源码之家的网站
  • wordpress制作企业网站曹县做网站建设
  • dede后台网站地图怎么做wordpress安装地图代码
  • 海外网络是什么意思博客优化网站seo怎么写
  • 做面食的网站腾讯cdn wordpress插件
  • 打开手机网站速度慢微信制作软件
  • 杭州网站专业制作wordpress搭建下载站
  • 南昌公司网站建设模板长沙自助建站哪家好
  • 建站平台加盟网页设计初学者公司网页设计模板
  • 上海高端定制网站公司微网站建站
  • 网站信息评估抽查做网站平台公司有哪些
  • 免费设计图网站网站建设与维护模板
  • 福建省中嘉建设工程有限公司网站四川省建筑信息网查询系统
  • 网站现在用h5做的吗甘肃省通信管理局网站
  • 成都网站建设众成联邦代做宝网站
  • 聊城建设工程质量信息网站公司免费网站搭建
  • 海康域名网站做微信公众平台的网站吗
  • 江阴网站建设推广网站流量统计表
  • 如何设置网站域名十大高端网站定制设计师
  • 太原cms模板建站嵌入式培训推荐
  • 南京h5网站建设品牌建设与管理提案
  • 哪些网站可以seo网站域名个人备案查询