android kotlin扩展添加域名?

你是否常为和系统方法变量起名冲突而烦恼?

你是否常为过多的方法名查找起来而而困惑?

你是否常为不知道谁写出的垃圾代码头痛?

今天,给大家介绍一种添加域名的办法 , 让你的代码都添加上你的名字, 从此让你有更多的姿势来甩锅

tips: 灵感来自于IOS

先来看一段简单的IOS代码:

objC写法:

//下拉刷新
_tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{// 空闲状态self->_tableView.mj_footer.state = MJRefreshStateIdle;// page = 1self->_mCurrentPage = 1;// 请求网络数据[self requestHttpData:self->mCurrentPage];
}];//上拉加载
_tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{// 空闲状态self->_tableView.mj_footer.state = MJRefreshStateIdle;// page++self->_mCurrentPage ++;// 加载数据if(self->_mCurrentPage <= self->_mPageCount){[self requestHttpData:self->mCurrentPage];} else {// 到底了 设置状态为没有更多数据self.tableView.mj_footer.state = MJRefreshStateNoMoreData;}
}];// 立即进入刷新状态
[ self.tableView.mj_header beginRefreshing];

swift写法:

self.tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: {// 设置状态为空闲状态self.tableView.mj_footer?.state = .idleself.mCurrentPage = 1// 请求网络数据requestHttpData(page:self.mCurrentPage)
})self.tableView.mj_footer = MJRefreshBackFooter.init(refreshingBlock: {// 设置状态为空闲状态self.tableView.mj_footer?.state = .idleself.mCurrentPage += 1// 请求下拉数据if(self.mCurrentPage <= self.mCurrentCount){requestHttpData(page:self.mCurrentPage)}else{// 没有更多数据self.tableView.mj_footer?.state = .noMoreData}
})
// 立即进入刷新状态
self.tableView.mj_header?.beginRefreshing()

tips:

  • tableView 相当于 RecyclerView

虽然不懂IOS,但是看这段代码也应该知道是啥意思,就是类似androidRecyclerView下拉刷新和上拉加载的功能

所以,这段代码有什么特点呢 ?

放大这段代码来看细节:

// 立即进入刷新状态
self.tableView.mj_header?.beginRefreshing()// 空闲状态
self->_tableView.mj_footer.state = MJRefreshStateIdle;// 没有更多数据状态
self.tableView.mj_footer.state = MJRefreshStateNoMoreData;

从这段代码中,可以看出,是一个mj的大佬写的框架,因为他给tableView添加了域名[mj] 那么要想在kotlin中也实现这种效果,如何做到呢?

先来看最终完成的效果:

可以无限的扩展

完整代码

val String.szj: SZJStringExtImplget() = SZJStringExtImpl.getInstance(this)
interface SZJ<T>class SZJStringExtImpl private constructor(private val str: String) : SZJ<String> {companion object {@SuppressLint("StaticFieldLeak")private var instance: SZJStringExtImpl? = null@Synchronizedfun getInstance(t: String): SZJStringExtImpl {if (instance == null) {instance = SZJStringExtImpl(t)}return instance ?: SZJStringExtImpl(t)}}fun getNumberLength() = let {str.filter {it in ('0'..'9')}.toList().size}fun getNotNumberLength() = let {str.filter {it !in ('0'..'9')}.toList().size}
}

代码很简单,但是一定会有一部分同学看到这个需求脑袋一懵,无从下手.

本篇代码量很少,只是分享一下其他平台一些好的东西 …

原创不易,您的点赞就是我最大的支持!

android kotlin扩展添加域名相关推荐

  1. android仿微信发布动态功能,Android GridView扩展仿微信微博发图动态添加删除图片功能.pdf...

    Android GridView扩扩展展仿仿微微信信微微博博发发图图动动态态添添加加删删除除图图片片功功能能 这篇文章主要为大家详细介绍了Android GridView扩展仿微信微博发图动态添加删除 ...

  2. Android Kotlin之Flow数据流

    文章目录 Flow介绍 使用举例 常用操作符 创建操作符 回调操作符 变换操作符 过滤操作符 组合操作符 功能性操作符 末端操作符 冷流 vs 热流 SharedFlow shareIn将普通flow ...

  3. Android: Kotlin 材料设计入门

    原文:Android: Kotlin 材料设计入门 作者:Joe Howard 译者:kmyhy 更新说明:本教程由 Joe Howard 升级为 Kotlin.原教程作者是 Megha Bambra ...

  4. Android Kotlin开发之Android KTX

    Android KTX |Android Jetpack 的一部分. Android KTX 是包含在 Android Jetpack 及其他 Android 库中的一组 Kotlin 扩展程序.KT ...

  5. android如何在底部显示四个按钮,[Android系列—] 四. 添加操作栏(Action Bar)

    [Android系列-] 4. 添加操作栏(Action Bar) 前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应 ...

  6. android系统源代码添加新产品的支持

    不同项目共用一个CPU等核心平台,项目外围有些差异,需要共用绝大部分代码,比如我们基于高通msm8937 64位CPU开发3款产品(每款产品定义为一个项目的体现形式),我们用DEVELOP_PROJE ...

  7. android http协议添加Authorization认证方式

      今天,简单讲讲android里如何使用http请求时在头部添加Authorization认证方式. 其实也很简单,之前需要做一个功能,在android去使用http访问设备,但是每次的访问 ...

  8. kotlin 扩展类的功能_Kotlin程序| 扩展功能功能

    kotlin 扩展类的功能 扩展功能 (Extension function) Kotlin provides the ability to add more functionality to the ...

  9. Kotlin扩展方法进化之Context Receiver

    /   今日科技快讯   / 近日,福特汽车公司宣布将削减总计3000个受薪和合同工职位,被裁员目标主要位于北美和印度.此举表明,该公司正在进行重组,以在开发软件驱动的电动汽车领域追赶特斯拉. /  ...

最新文章

  1. 谷歌相册也不能无限白嫖了,「地主家」也烧不起免费网盘
  2. java runtime environment 官网_Java Runtime Environment SE Development Kit
  3. Java中使用Jacob实现Windows下语音合成并生成音频文件
  4. CSS深入理解学习笔记之z-index
  5. debian上安装docker ce
  6. PHOTOSHOP中3D下拉菜单为灰色如何设置
  7. 整整4个月了,尽全力组织了源码共读活动~
  8. 纯css3实现的鼠标悬停动画按钮
  9. 想入职AI算法岗?BAT的工程师去学了这门课
  10. 只了解View的事件分发是不够的,来看下输入系统对事件的处理
  11. c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形
  12. 用计算机计算汉坦,河北省Ⅱ型汉坦病毒流行特征及与细胞自噬相互作用研究
  13. 提升R代码运算效率的11个实用方法——并行、效率
  14. Mrbayes使用形态学数据构建系统发育树
  15. Spark Streaming 图片处理案例介绍
  16. Vue-cli使用prerender-spa-plugin插件预渲染的问题
  17. Android5.1永久隐藏工具栏定制
  18. you ll just never know
  19. 史蒂夫·乔布斯:“好学若饥、谦卑若愚”
  20. vsm特征提取java_文本分类之特征描述vsm和bow

热门文章

  1. 理清offsetparent()、offsetLeft/offsetTop、offset()、position()
  2. 微信公众号开发之加密解密
  3. dd腾讯云阿里云并安装相应代理加速github
  4. MySQL 加锁规则
  5. 英语感叹句的构成规则
  6. 对ROS局部运动规划器Teb的理解
  7. 听说你,对薪酬待遇不太满意 . . . .
  8. 敏捷团队的规范与准则
  9. C语言strcat库函数讲解
  10. Java中 String s = new String(“hello“)和String s = “hello“的区别