2010-07-14 2 views
2

내 어댑터에서 내 사용자 지정보기로 채워진 ListView가 있습니다. 각보기에는 목록 항목의 내용을 편집하는 또 다른 활동을 시작하는 단추와 해당 항목을 삭제하는 단추가있는 두 개의 단추가 있습니다.listview에서 데이터 변경 이벤트는 어디에 처리해야합니까?

제 질문은 해당 버튼에 대한 ClickEvent 처리기를 어디에 배치해야합니까? 필요한 모든 정보를 가지고 있기 때문에 필자는 사용자 정의보기 코드에 바로 표시해야합니까? 항목을 삭제하고 어댑터 데이터를 업데이트하고 onDataSetChanged() 등을 호출하는 ASyncTask를 시작해야합니까?

이 모든 것이 이벤트를 통해 내 ListActivity로 버블 링되어야합니까?

아마도 어떤 레벨에서도 작동하게 만들 수 있지만이 계층 구조 (Activity-> ListView-> Adapter-> ListItemView)의 어떤 레벨에서 ListView의 데이터를 편집/삭제할 수 있습니까?

답변

0

나는 이런 식 수행

  • Adapter의 자신의 일을하고 결국 notifyDataSetChanged() 전화 (예를 들어, public void deleteItem(int position)) 기본 데이터 조작을위한 공공 방법이를;
  • Activity은 로컬 변수에 Adapter이라는 참조를 유지합니다.
  • Listener은 보통 Adapter 메서드를 호출하는 Activity의 익명 내부 클래스로 생성됩니다.
관련 문제