我试图在Kotlin中的回收站视图中find最后一个项目的位置。但是在java中没有find像Kotlin一样的方法或属性。 Int lastVisibleItem = mLayoutManager.findLastVisibleItemPosition();//JAVA
我有一个类似于这样的Kotlin类: class MyClass @Inject constructor(val work: (Int) -> Unit)) { … } bind和@Provides都没有工作: class FunctionModule : AbstractModule() { override fun configure() { bind(object : TypeLiteral<Function1>() {}).toInstance({}) } @Provides fun workFunction(): (Int) -> Unit = { Unit } } } 我不断收到错误: 没有实现kotlin.jvm.functions.Function1 被绑定。 如何使用Guice为Kotlin函数注入实现?
我有一个util Kotlin类,我设置工具栏的标题,隐藏或显示工具栏取决于片段: class MyToolbarUtils() { fun hideToolbar(activity: Activity) { (activity as MainActivity).supportActionBar!!.hide() } fun showToolbar(activity: Activity, tag: String) { setToolbarTitle(tag, activity) (activity as MainActivity).supportActionBar!!.show() } fun setToolbarTitle(tag: String, activity: Activity) { var title = “” when (tag) { “Main_fragment” -> title = activity.resources.getString(R.string.Main_screen) “Add_note” -> title = activity.resources.getString(R.string.Add_note) } activity.title = title } } 如何从片段调用showToolbar(…)? […]
我正在尝试通过Intellij Idea Ultimate 2017.2中的Kotlin Koans进行工作,并且遇到了运行测试的问题。 我已经将测试目录标记为这样,但是当我尝试将它们作为整体或个别地使用Intellij添加到测试中的排水沟中的三角形箭头运行时,我得到“没有find测试”错误。 截图附上。
我试图学习kotlin语言(特别是对于android),但我发现学习各种for循环有一些困难,所以正常循环,每个循环和每个索引,以及如何使用它有什么区别? 例如在这篇文章中: https : //medium.com/mindorks/building-a-customview-tictactoe-eb439f506505 (即谈到android自定义视图),有这个部分: squares.forEachIndexed { i, rects -> for ((j, rect) in rects.withIndex()) { if (rect.contains(x.toInt(), y.toInt())) return Pair(i, j) } } 在那里他使用每个索引遍历所有包含在正方形(即2d数组)的variables,但我真的不明白它是如何工作的。 感谢任何帮助我的人!
我想出了以下问题: 我的主活动代码: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // … // ERROR: Cannot create instance of an abstract class var db = DataBase().getDataBase(this) // … } } 房间数据库: @Database(entities = arrayOf(DataBaseUser::class), version = 1) abstract class DataBase : RoomDatabase() { val DB_NAME : String = “DataBaseUser” private lateinit var INSTANCE […]
如何从第三层引用第二层“it”而不创建新的val / var? 我知道你可以做val mydata =它,然后做mydata.id.toString()我只是想知道Kotlin有什么东西可以让我从更高层次引用它吗? data.arrayresults.forEach { val result = it result.myData.let { val itemView – inflater.inflate(R.layout.somelayout) itemView.setOnClickListener(View.OnClickListener { // the it references the view but I want it to reference the result.myData SomeActivity.startActivity(context, it.id.toString()) }) } }
我如何明确告诉shadowJar使用Kotlin文件作为生成的uberJar的入口点? (或者,你喜欢胖胖的JAR 。) 笨拙地编辑META-INF/MANIFEST.MF并将其替换为zip文件(使用GUI将其放回): thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ ll total 900 drwxrwxr-x 2 thufir thufir 4096 Nov 5 03:42 ./ drwxrwxr-x 8 thufir thufir 4096 Nov 5 03:42 ../ -rw-rw-r– 1 thufir thufir 903184 Nov 5 03:42 kotlinAdder.jar thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ jar xf kotlinAdder.jar thufir@dur:~/NetBeansProjects/kotlin/build/libs$ thufir@dur:~/NetBeansProjects/kotlin/build/libs$ ll total 928 drwxrwxr-x 7 thufir thufir 4096 Nov 5 03:42 ./ […]
我有一个Java HashMap填充为 HashMap myMMap = new HashMap(); for (int i = 0; i < objects.size(); ++i) { myMap.put(objects.get(i), i); } 我试图把它转换成Kotlin。 我尝试了下面的方式,但我得到它的空值。 var myMap : HashMap? = null for (i in objects){ //myMap?.put(i, objects.indexOf(i)) myMap?.put(“sample”, 3) System.out.println(“myMapInForLoop” + myMap) } 它打印I/System.out: myMapInForLoopnull 。 我试过使用hashMapOf函数,但它只允许1个值,所以我不能把它放在我的myMap 。
Kotlin不能在编译时注入注释,如现有的库Lombok 。 有没有什么体面的方式在运行时注入Spring框架?