Kotlin – 如何为RecyclerVIew实现ItemClickListener

现在谷歌正式支持Kotlin作为Android的主要(或即将)语言,我试图翻译我的项目。 即使Android Studio内置的“翻译器”工作得很好,它显然不能翻译一个ItemClickListenerRecyclerView

作为一个例子,这是我所拥有的:

在java中,我正在使用GitHub上的这个类来实现它。

这是我的Java代码:

 ItemClickSupport.addTo(recyclerView).setOnItemClickListener(new ItemClickSupport.OnItemClickListener() { @Override public void onItemClicked(RecyclerView recyclerView, int position, View v) { ... }); 

如何在Kotlin中为RecyclerView设置ItemClickListener?

实际上,您可以将将Java代码粘贴到Kotlin文件中,然后使用内置的转换器来获得Kotlin代码。

(您也可以在Windows上使用Ctrl + Alt + Shift + K ,在Mac上使用^⌥⇧K或从菜单中通过代码 – >将Java文件转换为Kotlin文件来为整个Java文件调用此转换器。

它给你的是以下内容:

 ItemClickSupport.addTo(recyclerView).setOnItemClickListener { recyclerView, position, v -> // ... } 

这就利用了SAM转换 ,相当于这个更长,更类似Java的调用函数的形式:

 ItemClickSupport.addTo(recyclerView).setOnItemClickListener( object : ItemClickSupport.OnItemClickListener { override fun onItemClicked(recyclerView: RecyclerView?, position: Int, v: View?) { // ... } } )