我有一个 Java 代码,我想将其更改为 Kotlin 语法。java代码是:
public class CountryDataItem (String countryNane,String countryUrl)
{
public static RecyclerView.ViewHolder onCreateViewHolder (ViewGroup parent)
{
new ViewHolder (parent);
}
public static class ViewHolder extends RecyclerView.ViewHolder
{
private TextView countryTextView;
private ImageView countryImageView;
public ViewHolder(@NonNull View view)
{
super(view);
view.findViewById...
...
}
}
}
代码与 RecyclerView 相关。我希望能够从静态嵌套类类型中创建尽可能多的 ViewHolder。我写了下面的代码,但感觉我像一个糟糕的代码,不可读(我不喜欢写匿名类,但不知道如何写“静态” ViewHolder 类并且总是返回相同的字段。
我写的代码:
class CountryDataItem (val countryName :String, var countryFlagUrl )
{
companion object
{
fun onCreateViewHolder(parent: ViewGroup): RecyclerView.ViewHolder {
return object : RecyclerView.ViewHolder(parent) {
val countryNameTextView: TextView = parent.findViewById(R.id.country_name_tv)
val countryFlagUrl: ImageView = parent.findViewById(R.id.country_iv)
}
}
}
我更喜欢使用扩展 RecyclerView.ViewHolder 类购买的伴随对象编写代码,因为编写:
object ViewHolder: RecyclewView.ViewHolder 强制我将View类型的提供()和参数提供给RecyclewView.ViewHolder
我做不到