У меня есть собственный 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
вызывается при возврате из другого действия без возможного взаимодействия с пользователем. на самом деле проверить что-нибудь.
Дело в том, что раньше все работало нормально и ничего особо не менялось. Я читал, что это ошибка, но не могу в это поверить.
Он всегда вызывает метод для одних и тех же двух элементов ListView
. Можно ли как-то установить для них значение checkedChange=true
?