全部 文章 问答 分享 共找到46个相关内容
Kotlin项目实战——天气预报类APP
写在前面 在这篇文章之前,Kotlin的基础和进阶课程都已经学习完了。这里简单做一个总结: Kotlin基础学习1 主要知识点:Kotlin中的变量与函数,逻辑控制,类与对象 Kotlin基础学习2
求推荐学习kotlin的网站
师傅我看到现在很多项目都是用kotlin开发的,官方源码也用kotlin了,我觉得kotlin以后应该是开发Android的主流语言,师傅你是通过哪些途径学习kotlin的呢,除了官网还有其他网址吗
Kotlin编写BottomNavigationView,怎么样才能切换界面呢
Kotlin编写BottomNavigationView,怎么样才能切换界面呢
hi!kotlin!你好喜马拉雅 系列文章 之 一
kotlin重写一次喜马拉雅项目。因为工作原因一直在做flutter 开发。 之前2019年末已经写过一次喜马拉雅的了 !也是跟着康师傅一路,学到了很多东西! 现在有时间了!来复习一遍,用kotlin重新写一边
Kotlin学习笔记(一)
早就听说Kotlin简洁又方便,最近正好准备看《第一行代码》第三版,那就跟着书边学边做笔记吧 一、变量和函数 1、变量: 由于Kotlin的自动推导机制,所以在声明一个变量时,一般只用到两个关键字:
Hi ~ kotlin and 喜马拉雅 系列文章之七
kotlin'调用java的类 Kotlin跟Java是百分百兼容的,换言之,也就是它们俩是可以互操作的,也就是Java可以调Kotlin,Koltin可以调Java。 偷懒了吱吱! 推荐一款手机投屏插件 ,
领券联盟项目源码
领券联盟项目的源码,同学们可以下载看看,尝试着自己写一下,视频会在年后更新。本项目使用kotlin编写,考虑到还有同学没有转过来,视频会使用Java进行开发。使用Kotlin的同学可以参考一下
Kotlin基础学习
写在前面 在刚开学的时候,买了一本《第一行代码Android》,但一直在上课没有机会看,这几天刚好写完了上一个项目,这段时间就对这本书进行了学习。在这本书中,由于谷歌大力推广kotlin语言,将其
Hi~ kotlin and 喜马拉雅 系列文章之三
Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签(参见语法)。 要为一个表达式加标签,我们只要在其前加标签即可。
hi ! kotlin 你好“喜马拉雅”系列文章之二
hi!我来了。 今天我们抄康师傅的Logutils 写法上都是差不多的 public void xx 方法 **我们在kotlin中 是fun 前面默认public 修饰符 ** 后面 我们就不提及
Kotlin基础学习3
写在前面 本文上接:Kotlin基础学习2,在之前学习了Koltin中的Lambda表达式后,今天来学习我感觉能够让Kotlin成为谷歌推荐的安卓推荐编程语言的原因——空指针检查。大伙儿在做安卓的
最后的最后,是用Java 还是用 Kotlin?
为什么Android Studio用Java写着,写着,到后面都要变成用Kotlin?
Kotlin进阶学习4
写在前面 本文接上文:Kotlin进阶学习3。上次文章主要学习了泛型的一些基本用法,这次来学习一下泛型的进阶用法。这部分还是有很大的难度的,勉强记录一下。 泛型的实化 介绍 泛型实化这个概念,其实
Fragment如何隐藏嵌套的Fragment
Kotlin Fragment如何隐藏里面嵌套的Fragment? 我使用 childFragmentManager.beginTransaction()获取会闪退,错误信息: Attempt to
Hi ~ kotlin and 喜马拉雅 系列文章之六
cooek/Hiximalaya 仓库代码对应 part 1-------->84 实验 我发现prat 70 视频中 康师傅好像忘了有一个状态 我们注释掉播放器准备好了就play 的方法 Kotlin--
Hi ~ kotlin and 喜马拉雅 系列文章之五
video/av69452769?p=1 kotlin代码仓库:https://github.com/cooek/Hiximalaya glide中文文档:https://muyangmin.github.
Kotlin基础学习(补)
写在前面 在前文:Kotlin基础学习中简单学习了Kotlin的基本语法知识,但这些还没有涉及到Kotlin中十分重要的Lambda编程以及非空指针校验等等特性。今天就把这部分写一写,但可能不会写的
Kotlin进阶学习1
写在前面 在学习了Kotlin基础学习1,Kotlin基础学习2,Kotlin基础学习3之后,我们对Koltin的基础有了一定的了解。但就这样还是不够的,Kotlin里还有更多的特性等着我们去学习。
Retrofit加kotlin协程为何如此优雅
先创建retrofit,然后通过retrofit创建service,通过serice拿到Call对象,最后调用Call的enqueue方法,从回调中得到结果。 看起来也不是特别麻烦,而且真实项目中使用肯定会在封装一下,比这更简单,不过不管咋封装,回调还是少不了的,使用协程就可以把回调去掉啦,下面看看协程是咋实现的。
领券联盟-项目创建
领券联盟-项目创建 相关文章 api文档 概述 创建项目 这里我们还是使用java来编写,如果使用Kotlin的同学可以看已经上传的代码。 代码地址: github: https://github.
Kotlin进阶学习3
写在前面 本文上接:Kotlin进阶学习2,在上次的文章里,我们学习了高阶函数。这次我们就来学习如何利用高阶函数简化Android中的各种常见操作,并且学习一下泛型的内容。 使用高阶函数简化
Hi ~ kotlin and 喜马拉雅 系列文章之四
=8 iurl 仓库:https://github.com/cooek/Hiximalaya 延迟属性 by lazy {} 延迟属性(lazy properties) 是 Kotlin 标准库中的
CardView很玄学的不显示文字
也没有报错,很随机的不显示文字,如有有错误应该图片也不显示呀,实在是不知道哪里出问题了
领券联盟的Bug
<领券联盟的Bug 主要在72-79集中> 在精选界面出现问题,这个应该是一个逻辑上面的bug,康师傅给的kotlin版本也有同样的问题,希望师傅能解答下。 详情如图。
Kotlin进阶学习2
写在前面 本文紧接上文:Kotlin进阶学习1。在之前我们学习了一些Kotlin的特性,这次接着来学习Koltin中一些有用的特性 扩展函数 介绍 扩展函数是什么呢?扩展函数表示在即使不修改某个类的
领券联盟上拉获取更多出现卡顿,并且丢失Toast信息
多次刷新后,会丢失Toast,而且越往下刷新,卡顿越明显 老师kotlin版本的领券联盟demo,测试的时候没有出现这个问题 上面是参照老师您这边写的代码
Androidx 下 Fragment 懒加载的新实现 前言
以前处理 Fragment 的懒加载,我们通常会在 Fragment 中处理 setUserVisibleHint + onHiddenChanged 这两个函数,而在 Androidx 模式下,我们可以使用 FragmentTransaction.setMaxLifecycle() 的方式来处理 Fragment 的懒加载。 在本文章中,我会详细介绍不同使用场景下两种方案的差异。大家快拿好小板凳。一起来学习新知识吧!
Kotlin进阶学习5
写在前面 本文上接Kotlin进阶学习4,上次的文章学习了泛型的进阶知识,真是十分难理解的知识呢。这次(最后)来学习一下Kotlin中极具特色的协程。 协程 介绍 什么是协程呢?它其实和线程有些类似
将传统回调方式网络请求改造成 Kotlin 协程(Coroutine)的形式
传统的网络请求,往往采用回调的方式接收响应结果,比如 onSuccess 和 onFailed 分别对应成功和失败的情况,而现在由于 Kotlin 协程的出现,我们只需要一行代码即可实现网络请求,
加载媒体库使用LoadManager.initLoader应用崩溃
private fun initLoaderManage() { mImagesItems.clear() //先清理一次 var instance = getInstance(this) instance.initLoader(LOADER_ID, null, object : LoaderCallbacks { //获取图片数据 override fun onCreateLoader(id: Int, args: Bundle?): Loader { if (id == LOADER_ID) { return CursorLoader( this@SelectImageActivity, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, arrayOf("_data,_display_name,date_added"), null, null, "date_added DESC" ) } return null!! } override fun onLoadFinished(loader: Loader, data: Cursor?) { //获取完成 if (data != null) { val columnNames = data.columnNames while (data.moveToNext()){ //在这里获取链接 mImagesItems.add(ImageItem(data.getString(0),data.getString(1),data.getLong(2))) } } data!!.close() for(image in mImagesItems){ Log.d(TAG,image.toString()) } } override fun onLoaderReset(loader: Loader) { } }) }
  • 1
  • 2