Kotlin
大势所趋
深海呐
实名: 赵星海,山西人,目前在北京。
展开
-
Android kotlin密封类-基本使用
密封类(Sealed Classes)是一种特殊的类,它可以有一组受限的子类。与普通的基类不同,密封类的所有子类都必须在与密封类相同的文件中声明。这种限制使得密封类非常适合于表示固定的类层次结构,特别是在使用 when 表达式时。表示 UI 的不同状态,如加载、成功和错误。原创 2024-10-09 16:38:20 · 687 阅读 · 0 评论 -
Android Compose 控件基本属性
{Column { //竖向布局var newText by remember { mutableStateOf("默认") }NewText(NewTextField(fieldText, "随便输入点什么吧") {//输入监听事件Log.e(TAG, "输入内容:$it")NewButton("清空按钮") {//点击事件NewButton("跳转") {//点击事件Text(textAlign = TextAlign.Center, //文字居中。原创 2024-10-09 16:07:08 · 810 阅读 · 0 评论 -
Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
(1)处理Activity本身继承的方法onRequestPermissionsResult。(2)实现接口EasyPermissions.PermissionCallbacks来接收请求结果。(4)定义PermissionsCollBack是对结果返回的进一步简化 (非必须)(3)定义申请权限跳转带出去的Code(Int类型,合法范围0-255)原创 2024-09-18 14:50:28 · 507 阅读 · 0 评论 -
Android 用线程池实现一个简单的任务队列(Kotlin)
在Android中,很多人喜欢用Handler的postDelayed() 去实现延时任务.要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.原创 2024-09-14 13:53:10 · 877 阅读 · 0 评论 -
Android AlertDialog圆角背景不生效的问题
【代码】Android CustomDialog圆角背景不生效的问题。原创 2024-09-13 16:24:26 · 770 阅读 · 0 评论 -
Kotlin 代替Java接口回调,就这么简单
通常三步:1 定义接口和方法;2 使用接口中方法;3 继承接口并实现方法;1定义抽象方法 2 直接调用 3直接实现。使用Kotlin呢?原创 2024-09-11 17:22:48 · 303 阅读 · 0 评论 -
Flutter与Kotlin和Java的等义对比(简单函数&变/常量)
以上可以看出函数的表达,Dart比Kotlin更加简洁,Kotlin比Java更加简洁!原创 2022-07-25 15:32:57 · 871 阅读 · 1 评论 -
Kotlin 协程的suspend关键字到底有什么作用?进来看实验
不久前收到一个粉丝的提问,今天深海就来通过实验告诉大家suspend关键字到底有什么用。首先这是测试代码:/** * author:xingHai.zhao(CSDN-深海呐) * duty: 协程举例 */@ExperimentalCoroutinesApifun main(args: Array<String>) { Test().test()}class Test { @ExperimentalCoroutinesApi fun te..原创 2022-03-15 17:53:51 · 4633 阅读 · 7 评论 -
Android BaseActivity抽象举例
核心内容:log常用标记TAG赋值,状态栏设置,逻辑区分,onNewIntent重写,跳转方法简化./** *Author:XingHai.Zhao *Purpose: All Activity Father */abstract class BaseActivity : AppCompatActivity() { var TAG: String = "" override fun onCreate(savedInstanceState: Bundle?) {原创 2021-09-28 10:47:55 · 334 阅读 · 2 评论 -
Android 简易的自定义确认弹框AlertDialog
使用方式/构造函数参数解释:参数一:上下文; 参数二:标题; 参数三:内容; 参数四:确认按钮点击回调 CustomDialog(this, "清空输入", "确定要清空已输入内容吗?", object : CustomDialog.ClickCallBack { override fun onYesClick(dialog: CustomDialog) { //点击确认按钮后具体操作 ..原创 2021-09-06 16:02:49 · 1677 阅读 · 0 评论 -
Android 判断手指滑出View边界,本身和父布局两个方法判断
从本身的角度判断:当前触摸点是否滑出本身View边界 val vibrator = getSystemService(Service.VIBRATOR_SERVICE) as Vibrator //手势监听 mouse_mat?.setMouseTouchListener { event -> if (event.y < 0) { //手指划出上边界触发震动 vibra原创 2021-09-03 14:15:43 · 838 阅读 · 0 评论 -
Kotlin 内联函数 let、with、run、apply、also 区别和用法
let 结构:fun <T, R> T.let(block: (T) -> R): R = block(this)返回值:闭包形式返回是否为扩展函数:是当前对象指代:it应用场景:一般用于判空with结构:fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()返回值:闭包形式返回是否为扩展函数:否当前对象指代:this或省略应用场景:重复调用...原创 2021-08-11 18:22:51 · 634 阅读 · 1 评论 -
Android 获取APP崩溃日志并写入本地
在Application中加入一下代码Java: //获取崩溃信息 final Thread.UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {原创 2021-04-30 10:09:05 · 1036 阅读 · 2 评论 -
Android 判断是否有可用摄像头(前置,后置,USB外接)
Java:/* *作者:赵星海 *时间:2021/3/23 15:44 *用途:是否有可用摄像头 */public static boolean isCamera() { boolean result; Camera camera = null; try { camera = Camera.open(); if (camera == null && Build.VERSION.SDK_INT >= Build.VE原创 2021-03-23 15:53:13 · 3353 阅读 · 3 评论 -
Android 连续点击事件 最简单实现
昨天因为要用到这个,在网上找了一下,发现都不够简洁。所以这边写了一个简单的 直接复制拿去用实现原理是:计算点击间隔 如果间隔符合要求则次数+1 否则 次数复原 var time :Long= 0 //上次点击时间 var count = 1 //当前点击次数 /* *作者:赵星海 *时间:2021/3/15 4:58 *用途:连续点击五次退出 */ fun exitAfterMany() { //在点击事件里调用即可 .原创 2021-03-16 10:02:43 · 3482 阅读 · 6 评论 -
Android 日志写入文件 最简单实现
/* *作者:赵星海 *时间:2021/3/13 11:44 *用途:日志写入文件 */ fun writeLog(text: String?) { if (!isTest) return//如果是并非测试包 则不进行日志写入 var textR = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDef...原创 2021-03-13 11:47:49 · 1535 阅读 · 2 评论 -
Android 点击键盘外的区域收起键盘
拷贝入BaseActivity 或 具体ActivityJava实现: /** * 点击非编辑区域收起键盘 * 获取点击事件 * CSDN-深海呐 */ @CallSuper @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN ) {原创 2021-01-15 16:21:09 · 2235 阅读 · 6 评论 -
Android CH340驱动实现和单片机串口通信(串口转USB)Kotlin语言实现
序言今天领导订做了一个单片机,连接处是USB口的,然后调完没问题之后呢,把连接方法写下来了。由于是Kotlin语言写的,可能对纯Java的朋友不太友好,望多包涵。CH340驱动下载地址:http://www.wch.cn/download/ch341ser_android_zip.html注意事项和说明:1.解压完成后把jar包导入到自己项目中2.initUSB方法为核心代码包含了权限检查和驱动配置3.baudRate或者其他变量要根据具体情况改变4.startTh.原创 2021-01-13 17:39:22 · 1982 阅读 · 1 评论 -
Kotlin 百度离线人脸采集SDK
之前接过百度实名认证,特简单,相比之下百度的离线人脸采集要麻烦的多。说一下步骤吧1.去官网下载SDK和认证文件,项目中位置如下 assets 下为认证文件2.settings.gradle 中添加两行代码:include ':app'include ':faceplatform-release'include ':faceplatform-ui'3.自己项目名\app\build.gradle 中添加一行代码dependencies { ---------原创 2020-12-30 17:41:57 · 1457 阅读 · 5 评论 -
Kotlin BigDecimal进位取整/现金收银推荐金额
我目前的点餐机项目,之前有一个需求:根据用户点餐后需要付款的金额,给出推荐现金数额。如下图 , 客户需支付5.5元,这边给出快捷收银预估值如下图,客户需要支付44元,这边给出快捷收银预估值这其实是4个宽度权重为1的TextView: fun initView(){ textCoin?.text = "" + getMoneyUp(mShouldPrice, 1) + "元" textCoin1?.text = "" + getMon...原创 2020-11-25 14:11:56 · 1053 阅读 · 3 评论 -
Kotlin MutableList的多种创建方式
多种创建方式://第一种---------------------------------------------------------- val list: MutableList<Int> = mutableListOf<Int>() val list: MutableList<Int> = mutableListOf<Int>(1)//这里的1是元素 val list: MutableList<Int> = m原创 2020-10-20 09:33:26 · 10133 阅读 · 2 评论 -
kotlin gson 转集合
val listType : Type = object : TypeToken<ArrayList<Bean_meal_all>>() {}.typeimport java.lang.reflect.Type原创 2020-09-27 18:41:18 · 1203 阅读 · 3 评论 -
在java或kotlin中 如何解决 Double 大数自动转科学计数的问题
Double类型的值 大小超过一定量时,会自动转科学计数法展示。如何让Double大数也能正常展示呢?java: double CSDN深海呐 = 100000000.00; NumberFormat instance = NumberFormat.getInstance(); instance.setGroupingUsed(false);//设置不使用科学计数器 instance.setMaximumFractionDigits(2原创 2020-09-17 15:56:58 · 2263 阅读 · 1 评论 -
Kotlin “ const val “ 和 “ val “ 的区别
const val和 val 的区别:const 关键字 不可单独使用,只能与 val 组合使用.1. const val 只可以修饰方法外(top-level)变量,val 无限制2.const val 字节码为public final static,可以直接访问。而 val 字节码为private final static,并且val 会生成方法getNormalObject(),通过方法调用访问。...原创 2020-09-07 15:03:25 · 1791 阅读 · 0 评论 -
Kotlin 静态变量与静态方法详解
一. 伪静态(伴生对象)关键字:companion object 1.将变量和方法写在这个伴生对象中,外部就直接可以类名+点 调用。 2.但实际上在运行时,这些成员仍然是真实对象的实例的成员。属性修饰符解释: 1. const val :公共常量 ,且 const只能修饰 val 2. val :私有常量class Constant { companion object { const val NAME...原创 2020-09-03 13:56:38 · 1425 阅读 · 0 评论 -
Kotlin 构造函数和init代码块的执行顺序
直接举例把 constructor (i: Int) { i++ } init { Log.e("i=", i.toString()); }构造传入什么值 输出的就是什么值 理由很简单 以上代码 等同于: constructor (i: Int) { init() i++ } init { Log.e("i=", i.toString());...原创 2020-08-19 14:59:47 · 1850 阅读 · 2 评论 -
Kotlin 位运算符
Kotlin 位运算符号以infix函数的形式表示如下:and(bits)位与 同Java &or(bits) 位或 同Java |inv(bits) 位非 同Java ~xor(bits) 位异或 同Java ^shl(...原创 2020-08-04 17:29:21 · 6635 阅读 · 1 评论 -
Kotlin 自定义AlertDialog
最近写的一个简易选择框长这个样子:有多种模式:1.输入框模式,有一个标题一个输入框。见上图(构造方法中 isEdit 字段true的时候是开启输入框)2.还有一种提示模式,有一个标题一个内容。扩展:更多模式 比如 一个标题一个内容一个输入框,等。。。/** * Created by Xinghai.Zhao on 2020/8/4. * 自定义选择弹框 */class MyDialog(context: Context?) : AlertDialog(co...原创 2020-08-04 15:37:52 · 3342 阅读 · 2 评论