anko

Kotlin coroutine flow example for Android button click event?

那年仲夏 提交于 2021-02-07 02:56:52
问题 I used to use Channel to send out click event from Anko View class to Activity class, however more and more Channel functions are marked as deprecated. So I wanted to start using Flow apis. I migrated code below: private val btnProduceChannel = Channel<Unit>() val btnChannel : ReceiveChannel<Unit> = btnProduceChannel // Anko button { onClick { btnProduceChannel.send(Unit) } } to: lateinit var btnFlow: Flow<Unit> private set button { btnFlow = flow { onClick { emit(Unit) } } } I have to mark

Kotlin coroutine flow example for Android button click event?

与世无争的帅哥 提交于 2021-02-07 02:56:01
问题 I used to use Channel to send out click event from Anko View class to Activity class, however more and more Channel functions are marked as deprecated. So I wanted to start using Flow apis. I migrated code below: private val btnProduceChannel = Channel<Unit>() val btnChannel : ReceiveChannel<Unit> = btnProduceChannel // Anko button { onClick { btnProduceChannel.send(Unit) } } to: lateinit var btnFlow: Flow<Unit> private set button { btnFlow = flow { onClick { emit(Unit) } } } I have to mark

Kotlin之旅

[亡魂溺海] 提交于 2021-01-08 20:44:44
前言 本文是『张涛的Kotlin之旅 』,本来很早以前就有很多读者希望我能写一些关于Kotlin的文章,但是由于我本身对Kotlin不熟悉,所以找来了同事张涛的文章,会持续更新一系列Kotlin的文章~欢迎大家关注他的博客——http://kymjs.com/ (点击原文链接可以直接访问) 其实最初是准备写一本电子书然后免费开放给大家的,可惜啊可惜毅力不够,坚持不下来。所以我决定过年期间当成博客来写,把一个大目标拆分成一系列小目标应该好实现一些😁 普及一下 Kotlin 是什么 一门编程语言,你基本可以把它看做是 Java 语言的替代,反正 Java 能做的它也能做,Java 不能做的。。。它也不一定能做。。 你想要正经一点的描述?Kotlin 语言是一种新的静态类型编程语言,可运行于 JVM 环境同时也能用来开发 Android 应用。 这里是之前拟好的目录,有什么特殊需求也可以回复公众号。(新开的号连留言功能都没有😂😂) 第一部分——快速上手 HelloWorld Kotlin语言介绍 Kotlin的优势 开发环境 编码风格 基本语法 语句 in关键字的使用 类型检测并自动转换 when表达式 使用条件表达式 nullable值以及空值检测 函数 默认参数 变参函数 内联函数 扩展函数 代码示例 一段用作演示的练习代码 与 Java 混编 直接转换

Kotlin 作为 Android 开发语言相比传统 Java 有什么优势?

自作多情 提交于 2020-08-17 00:04:05
Kotlin 语言相对 Java 有很多优势,比如官网介绍的简洁、安全,例子见 Kotlin 中文站 首页,部分示例解析见下文。Kotlin 具有现代(也有称下一代的)静态编程语言的很多特点,如类型推断、多范式支持、可空性表达、扩展函数、DSL 支持等。另外对于安卓开发还提供了 Kotlin 安卓扩展和 Anko 库,参见 Kotlin 用于 Android 。 作者:灰蓝天际 链接: https://www.zhihu.com/question/37288009/answer/180025936 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: oschina 链接: https://my.oschina.net/u/3855429/blog/4355726

【55】Kotlin android Anko 神兵利器2

狂风中的少年 提交于 2020-07-25 11:20:08
还是建议去官网学习 https://github.com/JetBrains/anko 总共分为了四个模块 Anko是 Kotlin 库,可以使Android应用程序的开发变得更快,更轻松。它使您的代码干净且易于阅读,并且使您无需理会Android SDK for Java的粗糙之处。 Anko包含以下几个部分: Anko Commons :一个轻量级的库,其中包含用于意图,对话框,日志记录等的帮助程序; Anko Layouts :一种快速且类型安全的方式来编写动态Android布局; Anko SQLite :Android SQLite的查询DSL和解析器集合; Anko Coroutines :基于 kotlinx.coroutines 库的实用程序。 基于Gradle的项目 Anko具有元依赖性,可将所有可用功能(包括Commons,Layouts,SQLite)立即插入您的项目中: dependencies { implementation "org.jetbrains.anko:anko:$anko_version" } 确保 $anko_version 在项目级别的gradle文件中已结算: ext.anko_version='0.10.8' 如果仅需要某些功能,则可以引用Anko的任何部件: dependencies { // Anko Commons

Kotlin Android (从零开始一个项目)

被刻印的时光 ゝ 提交于 2020-04-23 14:23:52
LoveDairy 在跟着黑马程序员的kotlin开发教程的项目(黑马外卖)学习中,突然想着一边跟着他的代码抄写运行,一边通过学习到的方法,从零开始创建一个属于自己的程序,并且在学习的同时,在这个平台记录下自己的学习日常。 Day1 第一步:创建工程(开发环境采用的Android Studio3.6) 打开开发环境,如下图选择Start a new Android Studio project 选择一个Empty Activity,点击next 设置工程名,选择好工程路径,点击finish之后,等待一个时间(构建过程,可能会很久,加快速度的解决方案在同平台有,等待小伙伴们去发掘嗷!),当等待完构建之后,项目也算是初步的建立好了 第二步:程序整体界面的搭建 找到左边的MainActivity进入后,如下图找到activity_main 键盘ctrl+鼠标左键点击 进入activity_main文件,如下图(图里面的代码我已经是写好了的版本,下面会附上代码块,注释我理解到的代码含义) 代码块 activity_main代码及其注释 //工程自带部分我就不注释了 < ? xml version = "1.0" encoding = "utf-8" ? > < LinearLayout //设置整体代码的布局为线性布局 xmlns : android = "http://schemas

【Kotlin】FarawayPlayer

主宰稳场 提交于 2020-02-09 03:31:25
ps:一个提醒机制 抛出异常: kotlin.NotImplementedError: An operation is not implemented: not implemented 在实现接口的时候IDE会自动为我们添加上: TODO("not implemented") //To change body of created functions use File | Settings | File Templates. “ TODO("not implemented") ”这句代码,这句代码在运行的时候会抛出以上异常,这样做的好处是促使我们去实现接口方法或者手动删掉这句代码。 【 https://www.cnblogs.com/claruarius/p/GenyMotion_intelliJ_config.html 】使用Genymotion 1.在app.buildgradle中的依赖添加anko库 //app目录添加anko库 dependencies { implementation "org.jetbrains.anko:anko:$anko_version" } implementation "org.jetbrains.anko:anko:0.10.8" https://github.com/Kotlin/anko 2.anko库由gradle

Variable is declared as var but compiler is saying it val

半腔热情 提交于 2020-01-07 04:36:07
问题 Compiler is giving me the error Error:(97, 17) Val cannot be reassigned but the variable is declared as var . Edit: You can see comments in my code. When i assign rcv = recyclerView and chkStrictSearch = checkBox I get red underline here with above error message tooltip Below is my code: private var rcv: RecyclerView? = null private var chkStrictSearch: android.widget.CheckBox? = null private fun getMainView(): View{ return with(context){ frameLayout{ lparams(width = matchParent, height =

Accessing views from the Activity with Anko

北慕城南 提交于 2020-01-01 05:26:06
问题 I know I can use an id attribute with Anko to identify a view: class MainActivityUI : AnkoComponent<MainActivity> { override fun createView(ui: AnkoContext<MainActivity>) = with(ui) { frameLayout { textView { id = R.id.text } } } } Then obtain it in the Activity using the find() function (or by using Kotlin Android Extensions): class MainActivity : AppCompatActivity() { private val textView by lazy { find<TextView>(R.id.text) } override fun onCreate(savedInstanceState: Bundle?) { super

Is it possible to reuse a layout in Kotlin Anko

心不动则不痛 提交于 2019-12-21 00:47:08
问题 I read that the most benefit of using Anko is its reusability. But i could't find its exact example. Currently in the new Android layout system, the boiler plate is like below: DrawerLayout (with some setup) CoordinatorLayout (with some setup) AppBarLayout (with some setup) ToolBar <The Main Content> NavigationView (with header inflated) From the layout structure above, only <The Main Content> is varry. And in many cases those ceremonial setup duplicated almost in every activity. So here with