【发布时间】:2018-01-04 00:47:32
【问题描述】:
我尝试将现有的 android 代码转换为 Kotlin 代码。但是,它显示了以下错误
转换前的代码。
recyclerView.setAdapter(new RecyclerView.Adapter() {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = getLayoutInflater();
return new RecyclerView.ViewHolder(layoutInflater.inflate(R.layout.item_restaurant2, parent, false)) {
};
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 3;
}
});
转换后的代码。
recyclerView!!.setAdapter(object : RecyclerView.Adapter() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val layoutInflater = layoutInflater
return object : RecyclerView.ViewHolder(layoutInflater.inflate(R.layout.item_restaurant2, parent, false)) {
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
}
override fun getItemCount(): Int {
return 3
}
})
【问题讨论】:
-
您是否有特定原因要使用匿名适配器?
-
其实是我在“代码->将Java转换为Kotlin”中使用内置函数(将Java转换为Kotlin文件)后出现的错误。我只是想知道如何解决它。
-
我说的是你的 Java 代码,在它被转换之前。为适配器实际创建一个类对您来说是有意义的,而不是将
new Adapter()内联到setAdapater -
你是对的。为它开设一堂课是有意义的。一开始我走错路了。
标签: android android-recyclerview kotlin android-studio-3.0