#java #android #user-interface
#java #Android #пользовательский интерфейс
Вопрос:
У меня возникли некоторые проблемы с пониманием шаблона здесь. У меня слишком много смешанных представлений и адаптеров. Где моя логика идет не так?
Пытаюсь получить значки, похожие на кликабельные маркеры. Если установлен флажок, установите значение true, а если установлен еще раз, верните значение false. Однако, даже если для него установлено значение true / или false, представление не обновляется автоматически.
public class MyPojo {
String title;
String desc;
int image;
boolean isChecked;
Мой класс адаптера ~
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
TextView title = (TextView) holder.mView.findViewById(R.id.textView);
TextView desc = (TextView) holder.mView.findViewById(R.id.textView2);
final ImageView image = (ImageView) holder.mView.findViewById(R.id.imageView);
title.setText(pojos.get(position).getTitle());
desc.setText(pojos.get(position).getDesc());
if (!(pojos.get(position).isChecked())) {
image.setImageResource(pojos.get(position).getImage());
} else {
image.setImageResource(R.mipmap.ic_launcher);
}
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
image.setImageResource(R.mipmap.ic_launcher);
//todo Where do I set my is clicked ?
if (pojos.get(position).isChecked) {
pojos.get(position).setChecked(false);
//image.setImageResource(R.mipmap.ic_launcher);
}else{
pojos.get(position).setChecked(true);
//image.setImageResource(pojos.get(position).getImage());
}
}
});
}
Комментарии:
1. Вы должны привязать свои представления к таким title и desc в своем классе ViewHolder, а не в onBindViewHolder.
Ответ №1:
вам нужно установить setOnclickListener()
в ViewHolder
классе вместо onBindViewHolder()