사용자 정의한 CursorAdapter를 사용하여 ListView를 표시하는 애플리케이션이 있습니다. 내 사용자 지정 CursorAdapter.bindView 내에서 (커서의 열을 기준으로) 확인 된 값을 설정하고 clickListener를 설정하는 CheckBox 개체가 있습니다. 여기 내 코드는 다음과 같습니다Android CheckBox - 이전에 setOnCheckedChangeListener 제거
CheckBox mCheckBox = (CheckBox) view.findViewById(R.id.list_done);
mCheckBox.setChecked(isDone);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
AW.getDB().updateTask(c.getInt(c.getColumnIndex(ToDoDBAdapter.KEY_ID)), isChecked);
TD.displayTasks();
}
});
유일한 문제는 안드로이드 내 견해를 재활용 할 때 onCheckedChangeListener이 여전히 활성화되어 있는지, 따라서 setChecked에 대한 호출은() 리스너 내에서 그 코드가 실행됩니다. 내가 포함 된 코드를 실행하기 전에 바로 invalidata에 onCheckedChangedListener를 알고 싶습니다. 그것이 onCheckedChangeListener
내부에서 수행되는 경우가 mcheckBox.setOnCheckedChangeListener(null);
를 호출 할 수 있습니다
우수 답변 및 실수로 내 다른 질문에 답하는 +1 : http://stackoverflow.com/questions/8549386/mcheckbox-setoncheckedchangelistener-within-cursoradapter – finiteloop