У меня есть пользовательский ListView
, когда при нажатии на элемент запускается новый Activity
. В каждой строке ListView
есть CheckBox
и TextView
.
Это метод getView
из моего пользовательского ListView
:
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.puzzles_row, null);
}
ListedPuzzle lp = items.get(position);
if (lp != null) {
TextView title = (TextView) v.findViewById(R.id.listTitles);
title.setText(lp.getTitle());
CheckBox star = (CheckBox) v.findViewById(R.id.star_listed);
star.setChecked(lp.isStarred());
star.setTag(new Integer(position));
star.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Integer realPosition = (Integer) buttonView.getTag();
ListedPuzzle obj = items.get(realPosition);
starListedPuzzle(obj.getId(), isChecked);
}
});
}
return v;
}
onCheckedChanged
вызывается при возврате из другого Activty, без возможного взаимодействия с пользователем для фактической проверки чего-либо.
Дело в том, что раньше работало нормально и особо ничего не меняло. Я читал, что это ошибка, но не могу поверить в это.
Он всегда вызывает метод для одних и тех же двух элементов ListView
. Могут ли они быть как-то установлены на checkedChange=true
?