当我尝试通过 id 查找 RecycleView
时出现以下错误。
Error:- Type inference failed: Not enough information to infer parameter T
代码:
class FirstRecycleViewExample : AppCompatActivity() {
val data = arrayListOf<String>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.first_recycleview)
val recycler_view = findViewById(R.id.recycler_view) as RecyclerView ///IN THIS LINE I AM GETTING THE ERROR
data.add("First Data")
data.add("Second Data")
data.add("Third Data")
data.add("Forth Data")
data.add("Fifth Data")
//creating our adapter
val adapter = CustomRecycleAdapter(data)
//now adding the adapter to recyclerview
recycler_view.adapter = adapter
}
}
最佳答案
尝试类似:
val recyclerView = findViewById<RecyclerView>(R.id.recycler_view)
您可以使用 Kotlin Android Extensions
也为此。查看文档 here .
有了它,您可以调用recycler_view
直接在您的代码中。
Kotlin Android 扩展:
- 在您的应用中
gradle.build
添加apply plugin: 'kotlin-android-extensions'
- 在您的类(class)中添加
import kotlinx.android.synthetic.main.<layout>.*
的导入在哪里<layout>
是布局的文件名。 - 就是这样,您可以调用
recycler_view
直接在您的代码中。
它是如何工作的?第一次调用recycler_view
,调用findViewById
完成并缓存。
关于android - 在 Kotlin 中无法 "findViewById"。收到错误 "Type inference failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950401/