草庐IT

java - 在 lambda 函数中获取接口(interface)引用

考虑以下代码:valhwnd=Handler()hwnd.postDelayed(object:Runnable{overridefunrun()hwnd.postDelayed(this,5000)}},5000)这样,我可以通过在run()方法中使用this(指的是Runnable)将相同的Runnable发送到Handler。但是我怎么能只使用一个lambda表达式来做同样的事情呢?valhwnd=Handler()hwnd.postDelayed({//Howtoget"this"here?},5000)这可能吗? 最佳答案

android - kotlin 控制流 "while"错误

这个问题在这里已经有了答案:Assignmentsarenotexpressions-Kotlin(2个答案)关闭4年前。我在JAVA中有以下代码:byte[]data=newbyte[1024];intcount;inttotal=0;while((count=input.read(data))!=-1){output.write(data,0,count);total+=count;publishProgress((int)(total*100/sizeFichero));}我正在将我的应用程序更新到Kotlin,但在此期间,我遇到了错误。在这段代码中,我得到以下错误:Assign

android - 如何在 Android Studio 上将 Kotlin 版本从 1.2.51 升级到 1.3

我在将Kotlin版本升级到1.3-M1或1.3-M2时遇到了一些问题我现在正在使用1.2.51,当我尝试使用任何较新版本(如1.3-M2)时遇到的错误是:找不到org.jetbrains.kotlin:kotlin-gradle-plugin:1.3-M2。我猜它已被移动,但我已经查看了所有内容,但没有找到解决方案。谁能指出我正确的方向? 最佳答案 感谢yole和TheWanderer,我找到了丢失的东西。Here在EAP-NEXT选项卡下,您可以找到适用于IntelliJ/AndroidStudio的正确版本的kotlin插件。

android - kotlin 中的 "object"是否被垃圾收集

如果我们有一个这样的对象objectRepo{varactiveMovies:ArrayList?=null}然后我们这样调用它来赋值Repo.activeMovies=movieList在实例化它的Activity完成后,它是否得到垃圾收集?我知道这可能是一个非常基本的问题,但我无法理解object在Kotlin中的生命周期。 最佳答案 如果我们像这样创建一个对象:objectTest{//somefunctionsandproperties}并将其反编译为Java,我们将看到下一段代码:publicfinalclassTest{

android - 使用导航组件的某些 fragment 的自定义 "navigate up"行为

我想使用导航组件从fragment中添加自定义向上导航在我的build.gradle(app)中,我使用androidx.appcompat:appcompat:1.1.0-alpha04依赖项来访问onBackPressedDispatcher来自Activity。所以我在fragment中实现了OnBackPressedCallback并且向调度程序注册回调:requireActivity().onBackPressedDispatcher.addCallback(this)我原以为在工具栏中按向上导航会调用它,但事实并非如此。按设备的后退按钮会按预期调用它。是否有类似的方法在fr

安卓工作室 3.5 错误 : Unable to resolve dependency for ':app@debug/compileClasspath'

当我尝试同步gradle时出现此错误。我正在使用AndroidStudio3.5和gradle5.4.1。它在这种配置下运行良好,但突然间我开始收到此错误。**ERROR**:Unabletoresolvedependencyfor':app@debug/compileClasspath':Couldnotresolvecom.google.android.gms:play-services-location:[15.0.0,16.0.0).AffectedModules:app**ERROR**:Unabletoresolvedependencyfor':app@debugAndro

android - 如何在 Kotlin 中使用 Realm 的 in 方法

我正在尝试做类似的事情:valbarcodes=arrayOf("123","456","789")realm.where(Product::class.java).in("barcode",barcodes).findAll()但是“in”是一个Kotlin函数,我无法访问RealmQuery对象的in(StringfiledName,String[]values)方法。目前我有一个java类可以完成这项工作并返回结果,但我想知道是否有更优雅的解决方法? 最佳答案 如EscapingforJavaidentifiersthatar

android - Moshi 的自定义适配器与 RxAndroid & Retrofit & Kotlin

为Android项目配置Kotlin后,我写了一个简单的MainActivity.kt。它调用Retrofit获取包含以下数据的JSON文件:{"message":"success","user":{"username":"Eric"}}现在我想使用Moshi将JSON数据转换为Kotlin的类,所以这里有两个类来反射(reflect)上面的JSON结构:classUser(varusername:String)classUserJson(varmessage:String,varuser:User)以及Moshi的自定义类型适配器:classUserAdapter{@FromJson

android - 如何在 kotlin 中创建一个可观察列表

每当有新元素添加到我的列表时,我想更新我的文本..我试图通过下面的代码来做到这一点..varmyList:MutableList>byDelegates.observable(mutableListOf(),onChange={_,_,new->Constants.debug("ValueChanged")})但它似乎不起作用..有什么想法吗? 最佳答案 它不起作用,因为observbe委托(delegate)只观察对变量的更改,而不是对存储在该变量中的对象的更改。所以当列表改变时,变量仍然指向同一个列表,可观察委托(delegat

java - android oreo 上的永久服务

Android8的电池消耗改进对用户来说是件好事,但我有点担心我的服务能否按预期运行。首先:感谢您的任何建议,但我不能只安排我的服务。我想制作一个一直在后台运行的类似于OKGoogle的关键字监听器。它将基于开源的pocketsphinx-android库。我知道这会消耗很多电池电量,我会通知用户。我们可以在android8+上创建永久后台服务吗?我需要在gradle中以android8为目标,因为我期待一些旧目标的错误。我也不想使用在状态栏中永久显示通知的前台服务来打扰用户。[https://developer.android.com/about/versions/oreo/back