kotlin

Android Kotlin/java集成arouter产生的问题及解决

蹲街弑〆低调 提交于 2020-08-07 16:33:01
前言 一般解决不同模块中的Activity跳转需要相互依赖,如此将产生严重的耦合,失去了划分module的意义。 可以自己根据需要设计跳转router,也可以直接使用arouter第三方依赖实现,在实现过程中会产生较多的问题,本文将给出基本步骤及解决办法。 1.kotlin配置基础步骤 以下步骤主要以Kotlin语言环境为基础。首先在项目app或其他命名的模块下的build.gradle中添加以下内容 apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-android-extensions' kapt { arguments { arg("AROUTER_MODULE_NAME", project.getName()) } } dependencies { api 'com.alibaba:arouter-api:1.5.0' kapt 'com.alibaba:arouter-compiler:1.2.2' } 这是其他博客中描述的通用配置,但是这样做会出现一个错误: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'kotlin-kapt'] org.gradle.api.GradleException:

【Android】Data Binding 用法总结

ぐ巨炮叔叔 提交于 2020-08-07 16:28:39
本文讲解 Data Binding 基本用法,单向绑定,双向绑定。 官方文档: https://developer.android.google.cn/topic/libraries/data-binding 一句话介绍 Data Binding :Data Binding 库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。 注:本文使用 Kotlin 编写。 在应用模块的 build.gradle 文件中添加 dataBinding 元素: android { ... dataBinding { enabled = true } } 目录 一、基本用法 二、单向绑定 三、双向绑定 一、基本用法 1. 创建一个 XML 布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> </androidx.constraintlayout

那些要替代C和Java 的后浪,如今混得怎么样?

房东的猫 提交于 2020-08-07 11:35:21
  近日,TIOBE 公布了 2020 年 5 月的编程语言排行榜,C 语言时隔 5 年重返榜首,Java 和 Python 分列二、三位。   前段时间,B 站推出的青年节演讲视频《后浪》在朋友圈刷屏,看着“后浪”们丰富多彩的生活,同事们纷纷自嘲自己就是被拍在沙滩上的那一个,被生活疯狂蹂躏。   然而在编程语言界,“后浪”们掀起的波澜则十分有限。与近年来陆续涌现的新兴编程语言相比,那些出道即巅峰、一巅几十年的“前浪”们,似乎还没有要退位让贤的意思。   在 TIOBE 公布的最新编程语言排行榜中,排名前十的语言中有 8 个诞生于上个世纪 90 年代,最“年轻”的是诞生于 2001 年的 C#,而位于榜首的 C 语言距今已有 48 年的历史。   如果我们再来纵观自 2002 年以来的编程语言排行榜,基本上也还是这些老牌编程语言的身影,尤其是 C 与 Java 这两位“前浪”老大哥的江湖地位一直难以撼动。   数十年来,陆续出现的新兴编程语言不在少数,其中不乏一些以取代某种老语言为目的而设计的,那么这些编程语言界的“后浪”们,是否能够追上“前浪”们的脚步呢?下面不妨让我们来看看这些年编程界的知名“后浪”们。   1、前浪 C++(1979)VS 后浪 Go(2009)   诞生于 2009 年的 Go 语言堪称编程语言中的“星二代”。Go 的早期作者有三人,分别是 Rob Pike

#新闻拍一拍# 唯品会 Saturn 插件因未声明上游项目版权而被拒

妖精的绣舞 提交于 2020-08-07 11:28:26
唯品会 Saturn 插件因未声明上游项目版权而被拒 22 日晚,Apache SkyWalking 创始人吴晟在朋友圈中指出,因违反开源协议要求,SkyWalking 只能暂时拒绝针对唯品会 Saturn 项目的插件需求。吴晟称,“Saturn 是 fork 自 ElasticJob,并更改了版权信息,这是一个非常严重的许可证问题……我们都不能正式接受它作为 Apache SkyWalking 的一部分”。 来源: 开源中国 拍一拍:在参与和贡献开源项目时,忽视或对开源许可证的无知,都是投入开源生态的重大阻碍,是需要认真学习的一课。 谷歌再推 Kotlin:代码量比 Java 减少 80% Google Home 团队现身说法,通过自身经历,展示了 Kotlin 开发的好处。截至今年六月,该应用中约有 30% 的代码采用 Kotlin 编写,今后的新功能也被鼓励用 Kotlin 进行开发。Kotlin 编程语言 2011 年由 JetBrains 推出,2012 年开源,2017 年成为 Android 官方开发语言,并于 2019 年成为 Andoid 开发官方首选语言。 来源: 开源中国 拍一拍:Java 被爆锤,但是这依然不能影响 Java 的统治地位。 蚂蚁区块链正式升级为“蚂蚁链”:全球区块链专利排名第一 7月23日,蚂蚁集团董事长井贤栋在杭州宣布,蚂蚁区块链正式升级为

SpringBoot中基于Pact的契约测试

萝らか妹 提交于 2020-08-07 11:21:25
背景 如今,契约测试已经逐渐成为测试圈中一个炙手可热的话题,特别是在微服务大行其道的行业背景下,越来越多的团队开始关注服务之间的契约及其契约测试。 什么是契约测试 关于什么是契约测试这个问题,首先先看一下Pact官方文档给出的定义:pact的官方文档,是另一个可以帮助我们理解契约测试的地方。它对契约测试给出了这样的定义: " Contract testing is a way to ensure that services (such as an API provider and a client) can communicate with each other"。 这里面需要关注的重点是 "communicate " , 它给出了Pact对契约测试范畴(scope)的定义 。 契约测试又称之为 消费者驱动的契约测试。这里的契约是指软件系统中各个服务间交互的数据标准格式,更多的指消费端(client)和提供端(server)之间交互的数据接口的格式。 契约测试的价值 那什么是契约测试的价值呢?要说清楚契约测试的价值,就需要准确认识契约测试的精髓——"消费者驱动" 在讨论契约测试的范畴里,”消费者驱动”述及的对象是契约,而不是契约测试。所以谁被驱动的对象就是契约。举个例子,当某个provider正常上线后,某个consumer需要消费这个provider的服务

CircleCi emulator64-arm: command not found

五迷三道 提交于 2020-08-07 10:44:07
问题 I try to launch my instrumentation test in Circle Ci. I have this following code : test_ui: <<: *build_environment docker: - image: circleci/android:api-27 steps: - checkout - *sdk_license_agreements - run: name: Setup emulator command: sdkmanager "system-images;android-22;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-22;default;armeabi-v7a" - run: name: Launch emulator command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}

CircleCi emulator64-arm: command not found

穿精又带淫゛_ 提交于 2020-08-07 10:44:07
问题 I try to launch my instrumentation test in Circle Ci. I have this following code : test_ui: <<: *build_environment docker: - image: circleci/android:api-27 steps: - checkout - *sdk_license_agreements - run: name: Setup emulator command: sdkmanager "system-images;android-22;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-22;default;armeabi-v7a" - run: name: Launch emulator command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}

how to navigate one navigation graph to another in android jet pack navigation controller

你离开我真会死。 提交于 2020-08-07 09:23:10
问题 I have two navigation graph one for registration of my application after completing registration I want to navigate another graph is it possible? 回答1: You can use startActivity method to navigate to another navigation eg : activity?.startActivity(Intent(activity,HomeActivity::class.java)) in kotlin getActivity().startActivity((Intent(getActivity(),HomeActivity.class)) in java Note : HomeActivity contains nav host of another navigation graph 来源: https://stackoverflow.com/questions/52947581/how

【13】 Kotlin 小案例,计算器

柔情痞子 提交于 2020-08-07 07:35:31
java 代码如果要实现的话 代码量更多些。 下面直接看kotlin的。 package com.yzdzy.kotlin.calc fun main(args: Array<String>) { println("请输入算是 列如 3 + 4") val input = readLine() if (input != null) { val splits = input.split(" ") val arg1 = splits[0].toDouble() val op = splits[1] val arg2 = splits[2].toDouble() print("$arg1 $op $arg2 = ${Operator(op).apply(arg1,arg2)}") } } class Operator(op: String) { val opFun: (left: Double, right: Double) -> Double init { opFun = when (op) { "+" -> { l, r -> l + r } "-" -> { l, r -> l - r } "*" -> { l, r -> l * r } "/" -> { l, r -> l / r } "%" -> { l, r -> l % r } else -> { throw

How to get enum value of raw type from an enum class and a string in kotlin

别等时光非礼了梦想. 提交于 2020-08-07 06:07:51
问题 I have the following code in java: Enum getEnumValue(Class<?> enumClass, String value) { return Enum.valueOf((Class<Enum>) enumClass, value); } How to rewrite this in Kotlin? Update enumValueOf<>() function is not applicable in this case because I don't know the actual type parameter, I only have a Class<?> object with unknown type ( Class<*> in kotlin) and a name string. The Class is known to be enum: Class.isEnum returns true. Using these two inputs, the java code above allows to obtain the