尝试将以上Java代码转换为Kotlin代码,则改写后的Kotlin代码如下所示: val builder = AlertDialog.Builder(this) builder.setTitle...当然,为了正常地使用这么好的扩展函数,不要忘了在代码文件头部加上下面一行导入语句: import org.jetbrains.anko.alert 这么精简的Kotlin代码,功能上可是一点都没偷工减料的...然而Java代码就是这么错综复杂,要想开发Android,只能这么捣腾,不然还有更好的法子吗?不信的话换成Kotlin试试?...说时迟那时快,在Android Studio上面把Spinner上述的Java代码转换为Kotlin,不一会儿就生成了如下的Kotlin代码: private fun initSpinner...编码,看起来十分中规中矩,可是仍然显得拖泥带水,很简单的功能也花费了六行Java代码。
解决方法1: 对Double类型的数字进行 格式化输出 ,相对来说不是很精确 import java.text.DecimalFormat; public class TestDouble_String...System.out.println(decimalFormat.format(double1)); System.out.println(double1); } } 解决方法2: 数字用BigDecimal表示,然后在输出...string ,相对来说更精确 import java.math.BigDecimal; public class TestBigDecimal_String { public static...Long.MAX_VALUE); String result = bigDecimal.toString(); System.out.println(result); } } 所以在要求显示的值更精确时采用第二种方式...,当要求值显示的更直观时采用第一种方法
文章目录 一、报错信息 二、解决方案 方案一 方案二 方案三 一、报错信息 ---- Android Studio 中打开 Kotlin 代码 , 报如下错误 : kotlin library {...:kotlin-stdlib:1.7.10 (*) | \--- androidx.appcompat:appcompat-resources:1.5.1 (c) +--- com.google.android.material...:$kotlin_version" } 其中 $kotlin_version 是定义在根目录 build.gradle 中的扩展变量 buildscript { ext.kotlin_version...= "1.7.10" } 这是由于 Android Studio 中的 Kotlin 插件版本太低 , 当前的 Kotlin 版本 1.7.10 太高导致的 ; 在根目录的 build.gradle...顶层构建脚本中 , 降低 Kotlin 的版本 , 即可解决上述问题 ; 这里降低到 1.5.1 即可 ; // Top-level build file where you can add configuration
一.Android 自定义view的概念 在Android中,自定义视图(Custom View)是指开发者可以根据自己的需求和创意创建全新的用户界面组件。...二 Android 自定义view的方法 创建一个继承自View或其子类的Java类作为您的自定义视图类。..."/> 或者在代码中: CustomView customView = new CustomView(context); // 添加到父容器中 parent.addView(customView); 三...通过在CustomView类中添加更多的绘制逻辑和交互操作,您可以根据需要创建出更复杂和丰富的自定义视图。...通过充分利用自定义视图的功能,开发者可以扩展Android系统的界面库,实现更灵活、丰富和与众不同的应用界面。
文章目录 一、报错信息 二、报错信息 一、报错信息 ---- 在 Android 项目中 , 集成 ARoute 后 , 报如下错误 ; 报错信息 : D:\002_Project\002_Android_Learn...-- com.android.support:customview:28.0.0 (*) | +--- com.android.support:coordinatorlayout...:28.0.0 同时在 androidx.appcompat:appcompat:1.5.1 中又发现了 androidx 支持库 ; +--- androidx.appcompat:appcompat...:kotlin-stdlib:1.6.20 -> 1.7.10 (*) 这两种库出现了冲突 , 导致编译报错 ; androidx 和 support 库不能一起使用 ; 在 Android Studio...工程根目录的 gradle.properties 配置文件中 , 添加如下配置 , 可兼容 support 和 androidx 库 ; # 兼容 support 和 androidx 库 android.enableJetifier
and Kotlin compilers to target Java 8....`widthDp: Int`: 在Compose中渲染的最大宽度,单位为dp。 8. `heightDp: Int`: 在Compose中渲染的最大高度,单位为dp。...所以,在setContent中写入关于UI的@Compopse方法,即可在Activity中显示。...- 状态提升是一种编程模式,在这种模式下,通过将可组合项中的内部状态替换为参数和事件,将状态移至可组合项的调用方。 - 状态提升的过程可让您将单向数据流扩展到无状态可组合项。...Android View 如果碰到在Compose环境中,想要使用Android的View视图的情况,只需要使用AndroidView函数即可 @Composable fun CustomView(
A 依赖库 , A 依赖库又依赖于 B 依赖库 , 同时应用中又依赖 B 依赖库 , 这样就导致应用中引入了两次 B 依赖库 , 在构建时 , 系统会自动去掉一个重复的 B 依赖库 ; 下面这种情况...命令行查看依赖模块 ---- 在 Android Studio 的 Terminal 面板中 , 执行 gradlew app:dependencies --configuration releaseRuntimeClasspath...androidx.appcompat:appcompat:1.1.0 依赖时 , 就已经自动选择了 最高版本依赖 androidx.appcompat:appcompat:1.5.1 ; 然后在分析...:material:1.6.1 三、依赖传递冲突解决方案 ---- 1、依赖传递冲突 依赖传递冲突 : 在依赖配置中 , 可能存在这种情况 , 应用中引入了第三方库 A , A 存在 B 依赖库的 1.0...support 依赖库 , 但是新版本的 Android 开发时使用 androidx 依赖库 , 这就导致了冲突 ; 这是由于依赖分组不同导致的依赖冲突 ; 4、解决思路 依赖冲突的本质是 一个类
:windowNoTitle,为true时表示关闭ActionBar;为false表示显示 true 3、在Activity...所以要想在菜单列表中显示左侧图标,需要调用MenuBuilder的setOptionalIconsVisible方法(MenuBuilder在Android内核中,未开放出来,只能通过反射机制来调用)。...定制视图CustomView 定制视图用于在ActionBar上显示一些个性化内容,比如说,ActionBar自带的标题文字位于左侧区域,而且也不能调整文字大小、颜色等等,如果我们想把标题文本挪到中间...搜索框SearchView 搜索框有些复杂,实现步骤大致如下: 1、在菜单布局文件中定义搜索项: <item android:id="@+id/menu_search"...> 4、在菜单代码中初始化搜索框,并关联搜索动作对应的activity(本例中的activity是SearchResultActvity) private void initSearchView
- Android Studio 工程在编译时 , 报如下错误 : e: C:/Users/octop/.gradle/caches/modules-2/files-2.1/ org.jetbrains.kotlin...依赖库版本 使用的 kotlin-stdlib-common-1.7.10.jar 依赖库版本太高 , 降低该依赖库版本 ; 首先分析该依赖库是如何导入进来的 , 在模块的构建脚本中 , 没有直接导入该依赖库...BUILD SUCCESSFUL in 2s 1 actionable task: 1 executed 在 org.jetbrains.kotlin:kotlin-stdlib:1.5.0 -> 1.7.10...:13.0 在 androidx.appcompat:appcompat:1.5.1 依赖库中 , 有 org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 -...> 1.7.10 依赖 , 在该依赖库中使用了 org.jetbrains.kotlin:kotlin-stdlib-common:1.6.0 的依赖 , 但是在其它地方使用了 org.jetbrains.kotlin
转自:开源中国 www.oschina.net/translate/whats-new-in-kotlin-12 多平台项目 (实验性) 多平台项目是 Kotlin 1.2 中的一个新的实验性功能,允许你在...Kotlin 1.3 中将会报错。...来改变只读属性的 backing 字段已被弃用,在 Kotlin 1.2 中会被警告,在 Kotlin 1.3 中将会报错。...标准库 Kotlin 标准库 artifacts 及拆分包 Kotlin 标准库现在完全兼容 Java 9 的模块系统,它会禁止对包进行拆分(多个 jar 包文件在同一个包中声明类)。...在 Kotlin 1.2 中,这将会报错,因此需要使用 JVM 1.8 来编译这些代码。 破坏性变更:平台类型的 x.equals(null) 一致行为 在映射到 Java 原语 (Int!
文章目录 一、报错信息 二、问题分析 三、解决方案 一、报错信息 ---- 在 Android Studio 的 Terminal 终端执行 gradlew 报错 , 报错信息如下 : PS Y:\002...二、问题分析 ---- 在之前的 Terminal 中可以执行 gradlew 命令 ; 更新到最新版的 Android Studio Dolphin 2021.3.1 版本后 , 出现上述问题 ; 这里注意到...Windows 终端发生了改变 , 原来的中断是 Windows cmd 命令行中断 ; 最新的 Android Studio 中 , 使用的是 Windows PowerShell 终端 ; 在 Windows...中执行 bat 脚本时 , 需要使用 ....:kotlin-stdlib:1.7.10 (*) | \--- androidx.appcompat:appcompat-resources:1.5.1 (c) +--- com.google.android.material
文章目录 一、报错信息 二、解决方案 方案一 : 修改编译版本 方案二 : 处理依赖库 一、报错信息 ---- Android Studio 编译时 , 报如下错误 : Execution failed...依赖库中 要求的 minCompileSdk 为 33 , 本应用的编译版本为 32 , 这里设置为 33 即可解决 , 但是这样设置会造成其它问题 ; android { compileSdkVersion...:customview:1.1.0 | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0 | | +-...:kotlin-stdlib:1.7.10 (*) | \--- androidx.appcompat:appcompat-resources:1.5.1 (c) +--- com.google.android.material...2s 分析整个依赖 , 发现到处都有 androidx.core:core 依赖库 , 而且版本都不一样 ; 但是使用到 androidx.core:core:1.9.0 版本的情况 , 只有在
之前我们已经多次见过的类MainActivity,在Java代码中该类的写法如下所示: public class MainActivity extends AppCompatActivity { }...: 1、Kotlin省略了关键字public; 2、Kotlin用冒号“:”代替extends,也就是通过冒号表示继承关系; 3、Kotlin进行继承时,父类后面多了括号“()”; 表面上二者区别不大,...的名字叫init,不像Java那样把类名作为构造函数的名称; 2、Kotlin打印日志使用了类似C语言的println方法,而非Java的System.out.println; 3、Kotlin创建实例时省略了关键字...2、二级构造函数需要调用主构造函数,“this(context, name)”这句代码在Java中要写在函数体内部,在Kotlin中则以冒号开头补充到输入参数后面,这意味着二级构造函数实际上是从主构造函数扩展而来...主构造函数的入参在类名后面声明,函数体则位于init方法中;二级构造函数从属于主构造函数,它不但由主构造函数扩展而来,而且必定先调用主构造函数的实现代码。
列表视图 为实现各种排列组合类的视图(包括但不限于Spinner、ListView、GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter...故而在下拉框一小节之中,干脆把ArrayAdapter连同Spinner一股脑都摒弃了,取而代之的是Kotlin扩展函数selector。...马上利用Android Studio把上述Java代码转换为Kotlin编码,转换后的Kotlin代码类似以下片段: class PlanetKotlinAdapter(private val mContext...inflate(R.layout.item_grid_view, null) holder = ViewHolder(view) //视图持有者的内部控件对象已经在构造时一并初始化了...} //ViewHolder中的属性在构造时初始化 inner class ViewHolder(val view: View) { val ll_item: LinearLayout
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift。 Kotlin 可以编译成Java字节码。...在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言,替代 Java 语言。...--- Android 官方开发语言从Java变为Kotlin,Java 有哪些问题?...--- 扩展函数在 Android 中的案例 用扩展函数简化Toast的用法: 这是Toast的标准用法,在界面上弹出一段文字提示,代码很长。...高阶函数应用 在Android开发时,我们经常会遇到给自定义View绑定点击事件的场景。
Kotlin 真的是一门美丽的开发语言,她拥有的一些很棒的特性使 Android 开发变成的有趣和令人兴奋。...但是,它虽然简单,却非常有用,让我们来看一些在 Android 开发中的例子。 你可以在官方文档中了解更多关于委托属性的内容。...所以让我们来写一个扩展函数用于往Bundle 中存储某种类型的值,在类型不支持的时候抛出异常。...我们把这个类型设为非空的,并且在不能读取时抛出了异常,这让我们可以在 Fragment 中获取非空的值,避免了空值检查。...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性的例子。当然了,你也可以用别的方式来使用它。 这篇文章的目标是展示委托属性是多么强大,以及我们可以用它做什么。
文章目录 一、报错信息 二、问题分析 三、解决方案 方案一 : 提高 Kotlin 版本到 1.7.10 方案二 : 降低 kotlin-stdlib-common 依赖库版本 在之前遇到过类似问题...The binary ) , 报错的依赖库不同 , 本篇博客再次分析一遍 ; 一、报错信息 ---- Android Studio 工程在编译时 , 报如下错误 : e: Incompatible classes...Kotlin 版本到 1.7.10 直接将 工程根目录 中 build.gradle 构建脚本的 Kotlin 版本提升到 1.7.10 ; // Top-level build file where...依赖库版本 使用的 kotlin-stdlib-common-1.7.10.jar 依赖库版本太高 , 降低该依赖库版本 ; 首先分析该依赖库是如何导入进来的 , 在模块的构建脚本中 , 没有直接导入该依赖库...Gradle 插件】Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 ) 博客中 , 使用 force
Kotlin可以 100%等价替换Java代码,Android Studio 提供了一键把Java代码转义为Kotlin的能力。...kotlin 和 java 有一个重要的不同就是函数式编程。在函数式编程的思想中函数是一等公民,在使用 kotlin 时我们要多利用这种思维来思考问题。...2、配置成本低 Android Studio 3.0及其以版本上已经直接集成kotlin,无需再安装插件。只需在工程中配置kotlin依赖包。..." } 3、学习成本低:快速上手指引 InsertPic_(07-26(07-28-14-43-13).png Android studio中提供了快速将java转换为...是对属性自带set,get方法的,在转换为kotlin后会被转换成这样 InsertPic_D27D(0(07-28-14-43-13).png 如果实现接口的类中,之前有个成员变量也是title InsertPic
当手指抬起时,判断是否开始录音,录音时长是否过短,符合条件则提示录音时长过短;正常结束时通过回调返回该次录音的文件路径和时长。 4.点击录音列表的item时,播放动画,播放对应的音频文件。..."/ 4.2 代码 import android.media.MediaRecorder; import java.io.File; import java.io.IOException; import...android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.TextView; import...; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import...android.widget.ListView; import com.tiddlerliu.wxrecorder.CustomView.AudioRecordButton; import com.tiddlerliu.wxrecorder.CustomView.MediaManager
领取专属 10元无门槛券
手把手带您无忧上云