Tag: kotlin

当使用kotlin找不到文件时,如何从URL.readText()中获取错误

当我的手机上没有互联网,或者当这个URL不存在时,这个方法没有做任何事情,既不会崩溃也不会停止搜索。 我试过这个: doAsync{ val json:String json = try { URL(“http://10.0.2.2:8888/bac/orient.php?ort=1”).readText() }catch (e: IOException){ e.printStackTrace() “” } uiThread{toast(json)} }

Android Kotlin如何在多选列表视图中选中checkbox

我有一个多选列表视图。 我想检查一些checkbox,但不是全部。 我正在尝试下面的代码,但不知道从哪里去,或者如果这是一个开始。 val listView = findViewById(R.id.mylist_listview) val values = arrayOf(“One”, “Two”, “Three”) val list = ArrayList() for (i in values.indices) { list.add(values[i]) } val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list) listView.setAdapter(adapter) val cntChoice = listView.getCount() for (i in 0 until cntChoice) { listView. //Something to check boxes } }

当使用kotlin协同程序时,如何对一个调用暂停function的函数进行unit testing?

我有这样的课 class SomeClass { fun someFun() { // … Some synchronous code async { suspendfun() } } private suspend fun suspendFun() { dependency.otherFun().await() // … other code } } 我想unit testingsomeFun()所以我写了一个unit testing,看起来像这样: @Test fun testSomeFun() { runBlocking { someClass.someFun() } // … verifies & asserts } 但是,这似乎不工作,因为runBlocking实际上并没有阻止执行,直到runBlocking内的一切完成。 如果我直接在runBlocking里面测试suspendFun()它可以像预期的那样工作,但是我想能够一起测试someFun() 。 任何线索如何测试同步和异步代码的function?

数据类toString,等得到优化的proguard?

Kotlin有这样一个data class ,它提供了像提供自动toString ,等等方便的function。但是如果我们不使用这些函数,它们会被proguard优化掉吗? 我问,因为我想知道如果我们应该谨慎使用data class (例如,我们不使用toString ,等等,我们不应该使用数据类,而是普通的类,即使他们是模型类.. )

我怎样才能通过在活动模板中的types自动命名variables?

使用匕首,林注入领域很多 – 所以我创建了一个活的模板声明一个注入的variables: @Inject lateinit var $var$: $TYPE$ 在Java中,当我指定types为Repository ,类似的活动模板会自动填充存储 Repository 。 但是在Kotlin中 – 事实并非如此。 但我确定它可能吗?

处理android kotlin中的click事件:setOnClickListener只有在双击时才起作用

我在DialogFragment中有一个按钮可以返回到另一个活动。 但只有双击时才能使用。 我正在用尽想法。 在我的XML文件中,我已经尝试了以下(以不同的方式组合,但没有一个工作) 我的整个片段的XML文件 至于我的DialogFragment,我试图把我的setOnClickListener放在onViewCreated()方法里面,然后放在onStart()里面和onResume()方法里面。 它只在双击时才能工作。 我也有一个计时器,让对话在10秒后消失,然后把我带到我想要的活动,所以这不是一个问题,但我真的需要并想要解决它。 如果我将计时器设置为5秒或更低,当然,它给人的印象是按钮一次点击,但实际上没有。 class PaymentDoneDialogFragment : DialogFragment() { private lateinit var mYesBtn: Button private lateinit var mActionYes: () -> Unit override fun onViewCreated(view: View, @Nullable savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) dialog.setCanceledOnTouchOutside(false) dialog.window.requestFeature(Window.FEATURE_NO_TITLE) dialog.window.setDimAmount(.85f) dialog.window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) dialog.setCancelable(false) dialog.setCanceledOnTouchOutside(false) dialog.window.decorView.systemUiVisibility = activity?.window!!.decorView.systemUiVisibility dialog.window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) mDialogTitle = view.find(R.id.tv_payment_done_title) if (mTitle != null) { […]

如何在Kotlin中实现一个需要另一个属性的懒惰属性?

我需要一个矩形,需要在通话中初始化。 这是我的代码; class EpheButton private constructor( private val text: String, private val x: Float, private val y: Float, private val projectionMatrix: Matrix4) : Disposable { private val spriteBatch: SpriteBatch = SpriteBatch() private val bitmapFont: BitmapFont = BitmapFont() private val shapeRenderer: ShapeRenderer = ShapeRenderer() private val textWidth: Float private val textHeight: Float private val rectangle :Rectangle […]

如何在Kotlin中制作一个双向转换器? (在Java中工作)

我得到这个错误: 错误:(32,50)在类br.com.martinlabs中找不到方法indexFromModel(android.databinding.ObservableList ,br.com.martinlabs.usecase.model.GrupoDoPrincipal) .usecase.viewtools.Converters 但是我在Converters上有这个方法:(我已经尝试了一个类中的伴随对象) object Converters { fun indexFromModel(list: ObservableList, model: GrupoDoPrincipal): Int { return list.indexOfFirst { it?.id == model?.id } } @InverseMethod(“indexFromModel”) fun indexToModel(list: ObservableList, index: Int): GrupoDoPrincipal { return index.let { list[it] } } } 用法: 这个方法适用于Java: public static int indexFromModel(ObservableList list, GrupoDoPrincipal model) { for (int i = 0; i < […]

Kotlin JSR-223在Fat jar中的ScriptEngineFactory – 找不到kotlin编译器jar

我有一个胖的jar,我试图获得Kotlin的ScriptEngine的实例。 为了调试的目的,我正在遍历可用的脚本引擎工厂并获取引擎。 val scriptEngineManager = ScriptEngineManager() for (factory in scriptEngineManager.engineFactories) { val scriptEngine = factory.scriptEngine } 当它击中Kotlin的引擎时,它会失败,除了以下例外: Exception in thread “main” java.io.FileNotFoundException: Cannot find kotlin compiler jar, set kotlin.compiler.jar property to proper location at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt$kotlinCompilerJar$2.invoke(KotlinJsr223ScriptEngineFactoryExamples.kt:100) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt$kotlinCompilerJar$2.invoke(KotlinJsr223ScriptEngineFactoryExamples.kt) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt.getKotlinCompilerJar(KotlinJsr223ScriptEngineFactoryExamples.kt) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt.access$getKotlinCompilerJar$p(KotlinJsr223ScriptEngineFactoryExamples.kt:1) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmDaemonLocalEvalScriptEngineFactory.getScriptEngine(KotlinJsr223ScriptEngineFactoryExamples.kt:56) at davidsiro.invoices.InvoiceGeneratorKt.generateInvoice(invoiceGenerator.kt:16) at davidsiro.invoices.MainKt.main(main.kt:11) 我的胖jar包含所有的依赖(虽然解压),包括Kotlin编译器。 我正在使用Maven Assembly Plugin来构建它,其配置如下: org.apache.maven.plugins maven-assembly-plugin […]

什么是KTX(Kotlin扩展库),为什么它在Android开发中越来越受欢迎

大段引用 如何开始使用Android的KTX。