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
、実際に何かをチェックするためのユーザー操作なしで、別のアクティビティから戻ってきたときに呼び出されます。
ポイントは、以前は正常に機能していて、実際には何も変わっていないということです。バグだと読んだことがありますが、本当に信じられません。
の同じ 2 つの項目で常にメソッドを呼び出しますListView
。どういうわけか設定できcheckedChange=true
ますか?