Как сделать последний джетпак «Вид привязки» в адаптере, для автоматической привязки видов. Я не использую findVeiwById или Butterknife или Kotlin syntheti c ??? Я использовал новый вид привязки и работает нормально для деятельности и для фрагмента. Я могу видеть файлы ActivityHomeBinding и FragmentHomeBinding после включения viewBinding в файле build.gradle. Кроме того, я вижу класс ItemListBinding для используемого элемента xml, т.е. item_list. xml. Но как использовать этот файл в адаптере программы повторного просмотра
viewBinding {
enabled = true
}
Домашний файл активности
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)
}
Фрагмент
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = FragmentHomeBinding.inflate(inflater, container, false)
val view = binding.root
return view
}
Базовый адаптер: Хотите использовать привязку вида здесь. Я могу видеть ItemListBinding, но не понимаю, как его использовать.
class BaseAdapter @Inject constructor(
private val context: Context,
private val picasso: Picasso
) :
RecyclerView.Adapter<BaseAdapter.ViewHolder>() {
private var data = ArrayList<Data>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(context).inflate(R.layout.item_list, parent, false)
)
}
override fun getItemCount() = data.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
with(holder) {
// TODO
}
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
@BindView(R.id.tvMovieName)
lateinit var nameTV: TextView
@BindView(R.id.imageView)
lateinit var bannerImage: ImageView
init {
ButterKnife.bind(this@ViewHolder, view)
}
}
fun setData(serverData: ArrayList<Data>) {
data = serverData
notifyDataSetChanged()
}
}