Questions tagged «kotlin»

Kotlin是JetBrains支持的一种开源静态类型编程语言。Kotlin结合了OOP和功能特性,并专注于互操作性,安全性,清晰度和工具支持。它目前针对JVM和JavaScript,并且是Android上官方支持的语言。


16
Kotlin-android:未解决的参考数据绑定
我有以下使用新的数据绑定库用Java编写的片段类 import com.example.app.databinding.FragmentDataBdinding; public class DataFragment extends Fragment { @Nullable private FragmentDataBinding mBinding; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false); return mBinding.getRoot(); } } 它可以编译并运行良好。 我试图用Kotlin重写它,并提出了以下内容: import com.example.app.databinding.FragmentDataBdinding class ProfileFragment : Fragment() { private var mBinding: FragmentDataBinding? = null override …

8
只能从同一库组调用Android P可见性awareimagebutton.setVisibility
我正在尝试使用的一部分新的Android P FloatingActionButton,com.google.android.material.floatingactionbutton.FloatingActionButton并且收到此警告: VisibilityAwareImageButton.setVisibility只能从相同的库组(groupId = com.google.android.material)中调用 import com.google.android.material.floatingactionbutton.FloatingActionButton import android.view.View class MainActivity : AppCompatActivity() { lateinit var demoFab: FloatingActionButton override fun onCreate(savedInstanceState: Bundle?) { demoFab = findViewById(R.id.demoFab) demoFab.visibility = View.VISIBLE // the warning is here } } 我尝试搜索,唯一的搜索结果是响应UI可见性更改: 响应UI可见性更改 我尝试探索如何查看VISIBLE该com.google.android.material程序包中是否有int值,而我发现的唯一值是com.google.android.material.floatingactionbutton.FloatingActionButton.VISIBLE,但警告仍然存在。 顶级build.gradle buildscript { ext.kotlin_version = '1.2.41' repositories { google() jcenter() …

7
Kotlin中的静态扩展方法
如何在Kotlin中定义静态扩展方法?这有可能吗?我目前有一个扩展方法,如下所示。 public fun Uber.doMagic(context: Context) { // ... } 可以在实例上调用以上扩展。 uberInstance.doMagic(context) // Instance method 但是我如何使其变为静态方法,如下所示。 Uber.doMagic(context) // Static or class method

6
Kotlin中的单个感叹号
在Kotlin中,单个感叹号是什么意思?我已经看过几次了,尤其是在使用Java API时。但是我在文档或StackOverflow中都找不到它。
141 kotlin 

9
Kotlin:如何将函数作为参数传递给另一个函数?
给定函数foo: fun foo(m: String, bar: (m: String) -> Unit) { bar(m) } 我们可以做的: foo("a message", { println("this is a message: $it") } ) //or foo("a message") { println("this is a message: $it") } 现在,假设我们具有以下功能: fun buz(m: String) { println("another message: $m") } 有没有办法将“ buz”作为参数传递给“ foo”?就像是: foo("a message", buz)
140 kotlin 

6
如何获取每个Kotlin的当前索引
如何获取每个循环的索引?我想在第二次迭代中打印数字 例如 for (value in collection) { if (iteration_no % 2) { //do something } } 在Java中,我们有传统的for循环 for (int i = 0; i < collection.length; i++) 如何获得i?
140 android  for-loop  kotlin 

6
Kotlin:接口…没有构造函数
我将某些Java代码转换为Kotlin,但我不太了解如何实例化Kotlin代码中定义的接口。例如,我有一个接口(用Java代码定义): public interface MyInterface { void onLocationMeasured(Location location); } 然后在我的Kotlin代码中进一步实例化此接口: val myObj = new MyInterface { Log.d("...", "...") } 而且效果很好。但是,当我将MyInterface转换为Kotlin时: interface MyInterface { fun onLocationMeasured(location: Location) } 我收到一条错误消息:Interface MyListener does not have constructors当我尝试实例化它时-尽管在我看来,除了语法外,没有任何改变。我是否误解了Kotlin中的接口如何工作?
138 java  kotlin 

30
IllegalArgumentException:此NavController未知导航目标xxx
当我尝试从一个Fragment导航到另一个Fragment时,新的Android Navigation Architecture组件出现问题,出现这个奇怪的错误: java.lang.IllegalArgumentException: navigation destination XXX is unknown to this NavController 除此特定导航外,其他所有导航都可以正常工作。 我使用findNavController()Fragment的功能来访问NavController。 任何帮助将不胜感激。


11
使用JPA的Kotlin:默认构造函数地狱
根据JPA的要求,@Entity类应具有默认的(非arg)构造函数,以在从数据库中检索对象时实例化这些对象。 在Kotlin中,可以很方便地在主构造函数中声明属性,如以下示例所示: class Person(val name: String, val age: Int) { /* ... */ } 但是,当将非arg构造函数声明为辅助构造函数时,它要求传递主要构造函数的值,因此需要一些有效值,例如: @Entity class Person(val name: String, val age: Int) { private constructor(): this("", 0) } 在情况下,当性能有一些更复杂的类型不只是String和Int他们是不可为空的,它看起来完全坏为他们提供价值,尤其是当有在主构造和太多的代码init块,当正在积极使用的参数- -当通过反射重新分配它们时,大多数代码将再次执行。 此外,val在构造函数执行后无法重新分配-properties,因此也失去了不变性。 所以问题是:如何在不进行代码重复,选择“魔术”初始值和丧失不变性的情况下使Kotlin代码适用于JPA? PS是真的,除了JPA之外,Hibernate可以使用默认构造函数构造对象吗?


11
使用布尔值?在如果表达
如果我具有nullable Boolean b,则可以在Java中进行以下比较: Boolean b = ...; if (b != null && b) { /* Do something */ } else { /* Do something else */ } 在Kotlin中,我可以通过使用!!运算符来实现相同目的: val b: Boolean? = ... if (b != null && b!!) { /* Do something */ } else { /* Do something …
130 kotlin  null 

30
执行org.jetbrains.kotlin.gradle.internal.KaptExecution时发生故障
突然我开始收到此错误,而我却不知道为什么如果有人让我知道此错误在哪里,将足够有帮助。由于android studio的新更新,我能得到的就是这个。我得到的错误的详细摘要。 Task :app:kaptDebugKotlin ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR …

22
错误:程序类型已存在:android.support.design.widget.CoordinatorLayout $ Behavior
构建项目时出现以下错误。在此项目中未使用CoordinatorLayout。刚刚作为依赖添加到build.gradle中: 我正在使用Android Studio 3.2 Canary 4。 LogCat AGPBI:{“种类”:“错误”,“文本”:“程序类型已存在:android.support.design.widget.CoordinatorLayout $ Behavior”,“源”:[{}],“工具”:“ D8” }:app:transformDexArchiveWithExternalLibsDexMergerForDebug失败失败:生成失败,发生异常。*出了什么问题:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。 com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错:/windows/Other/app/build/intermediates/transforms/dexBuilder/debug/0.jar、/windows/Other/app/build/intermediates/transforms/ dexBuilder / debug / 1.jar,/ windows / Other / app / build / intermediates / transforms / dexBuilder / debug / 4.jar 、。。.......... / windows /其他/app/build/intermediates/transforms/dexBuilder/debug/294.jar 程序类型已经存在:android.support.design.widget.CoordinatorLayout $ Behavior build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.