Tag: 安卓

为什么试图访问常量值的问题没有解决?

该应用程序在Kotlin单例对象中定义常量: @file:JvmName(“APIConstants”) package com.myapp.api object APIConstants { const val HTTP_RESPONSE_CODE_NOT_AUTHORIZED = 401 etc…. } 然后他们被用于另一个class级: import com.myapp.api.APIConstants.HTTP_RESPONSE_CODE_NOT_AUTHORIZED etc … class API { private fun returnBadResponse(response: Response, callback: ApiAuthListener) { if (response.code() == HTTP_RESPONSE_CODE_NOT_AUTHORIZED) { callback.onBadAuthToken() } else { callback.onFailure(response.message(), getServerError(response)) } } 在这个类中,Android Studio(3.0 beta)提供了一个为常量添加导入的提示,并没有给出任何问题的指示(没有红色下划线等,方法中的常量引用以紫色斜体文本显示它已经解决了)但是当我建立这个项目时,我得到了这个: Error: Unresolved reference: HTTP_RESPONSE_CODE_NOT_AUTHORIZED 我已经尝试清除IDE缓存并重新启动它,并做一个干净的构建,这没有什么区别。 我已经尝试删除@JvmName注释,甚至将常量值放在没有包含对象的文件的根目录中,但是不允许构建。 为什么类没有引用这个常量,特别是当IDE强烈建议它可以解决这个问题的时候呢?

Firebase-Firestore不能同时加载2个文档的信息

早上好 所以,我可以从我的Firebase文档和集合中加载信息,在某种程度上… 当我的collections有1个文件,一切都顺利。 当它有一个以上的文件,那么,应用程序中断。 所以,我有这个: db.collection(“KitListCategorie”).get().addOnSuccessListener { snapshot -> for (document1 in snapshot.documents) { val data1 = document1.data val weights = data1[“categoryName”] as String val misc = data1[“categoryName”] as String categorySpinnerArray.add(weights) categorySpinnerArray.add(misc) } categorySpinnerArrayAdapter.notifyDataSetChanged() } 对于此Firestore设置: https : //imgur.com/a/pmBcE 然后我得到这个错误: kotlin.TypeCastException: null cannot be cast to non-null type kotlin.String 我究竟做错了什么? 谢谢

‘when’语句跳过Android的Kotlin条件

我一直在使用kotlin在android studio canary 5上开发应用程序。 我正在使用when语句来validationregistry单是否有效。 else if(registering) when { email.text == null -> email.error = “Enter Email!” !isValidEmail(email.text) -> email.error = “Invalid Email!” password.text == null -> password.error = “Enter Password!” password_conf.text == null -> password_conf.error = “Re-enter Password!” password_conf.text.toString() != password.text.toString() -> password_conf.error = “Re-enter Password!” password_conf.text.toString() != password.text.toString() -> password_conf.error = “Passwords Don’t […]

更简单的方法来获取视图的Id(字符串)的Id(int)

我是新的Android和Java,所以很抱歉,如果这是一个太基本的问题,但我试图find一个解决方案在论坛和谷歌,我不能。 我在我的布局中有24个按钮,所有这些按钮做类似的东西,所以我想创建一个通用的function。 但首先我需要知道他的名字(XML ID)按钮。 这是按钮的XML代码: 我为所有按钮设置了android:onClick =“onClick”。 在我的活动中,我创建了一个新的函数onClick: 这个我试过的代码: public void onClick(View v) { String name = v.getContext().getString(v.getId()); String name2 = context.getString(v.getId()); String name3 = getString(v.getId()); String name4 = getResources().getString(v.getId()); } 但是,当我尝试获取名称(在这种情况下“add_04”),我总是得到“false”。 最后,我find了一个解决方案,下面的代码: import java.lang.reflect.Field; String name5 = null; Field[] campos = R.id.class.getFields(); for(Field f:campos){ try{ if(v.getId()==f.getInt(null)){ name5 = f.getName(); break; } } catch(Exception e){ […]

Datepicker:如何在点击edittext时popupdatepicker

我想显示日期选择器popup窗口。 我find了一些例子,但我没有得到正确的。 我有一个编辑文本,我希望当我点击edittext的日期选择器对话框应该popup,设置日期后,日期应该以dd / mm / yyyy格式edittext中显示。 PLease提供示例代码或良好的链接。

Kotlintypes不匹配编译错误:需要成功,findMyError

我遇到了以下代码不能在kotlin中编译的问题。 // StateModel.kt sealed class StateModel class Loading : StateModel() data class Success(val data: T) : StateModel() data class MyError(val message: String) : StateModel() // StateModelTransformer.kt class StateModelTransformer : FlowableTransformer { override fun apply(upstream: Flowable): Publisher { return upstream .map { data -> Success(data) } .onErrorReturn { error -> MyError(error.message) // compile error, Type mismatch, […]

kotlin-android null不能转换为非nulltypeskotlin.String

我无法同步我的项目,因为: Caused by: kotlin.TypeCastException: null cannot be cast to non-null type kotlin.String at org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapperKt.loadKotlinVersionFromResource(KotlinPluginWrapper.kt:89) at org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapperKt.access$loadKotlinVersionFromResource(KotlinPluginWrapper.kt:1) at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper.(KotlinPluginWrapper.kt:39) at org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper.(KotlinPluginWrapper.kt:70) at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:81) at org.gradle.api.internal.plugins.DefaultPluginManager.instantiatePlugin(DefaultPluginManager.java:72) … 126 more 我更新Kotlin插件到1.1.61后发生这种情况

使用LiveData和数据绑定

随着Android体系结构组件的稳定,我开始将所有的基本ViewModel更新为ViewModel的新实现。 在我的理解中,建议使用LiveData来保存Model类,因为它更好地处理生命周期。 我喜欢使用Data Binding因为它使得代码在Java / Kotlin方面更加清晰,并且不需要“观察”值更改来更新UI。 然而,如果Model (或ViewModel)扩展了BaseObservable而LiveData则不扩展, LiveData使用Data Binding的布局只能监视数据的变化。 我明白LiveData的主要目标之一是观察和更新用户界面编程,但对于简单的更新, Data Binding是非常有用的。 这个问题已经被报道( GitHub和堆栈溢出 ),首先是说1.0版本会有,现在说这个function正在开发中。 为了同时使用LiveData和Data Binding ,我创建了一个扩展BaseObservable类的非常简单的实现: import android.arch.lifecycle.LiveData import android.arch.lifecycle.MutableLiveData import android.databinding.BaseObservable class ObservableMutableLiveData() : BaseObservable() { private var data: MutableLiveData = MutableLiveData() constructor(data: T) : this() { this.data.value = data } public fun set(value: T) { if (value != data.value) { […]

为什么可空数字不保存身份

在kotlin nullable价值观不是保存身份而是平等, val a: Int = 10000 val boxedA: Int? = a val anotherBoxedA: Int? = a print(boxedA === anotherBoxedA) // !!!Prints ‘false’!!! print(boxedA == anotherBoxedA) // Prints ‘true’ 我只是想知道为什么这是不同的?

如何在android中的kotlin读取和写入txt文件

我还是一个在kotlin和android studio的初学者。 我可以访问大多数的Android小部件,但我无法访问文件,到目前为止,我设法遇到只有下面的代码不起作用。 该应用程序崩溃… var recordsFile = File(“/LET/Records.txt”) recordsFile.appendText(“record goes here”) 如果我也可以知道如何在特定位置创建文件,将会非常感激。 就像在根目录或内部存储器或内部存储器中的文件一样。 谢谢..