2013-04-11 2 views
0

ListView에서 항목을 삭제하는 데 문제가 있습니다.Android : ListView에서 항목 삭제

BaseExpandableListAdapter의 하위 클래스를 사용하고 있습니다.

문제는 내가 항목을 삭제할 때 기본 데이터를 변경 한 후 notifyDataSetChanged를 호출한다는 것입니다. 모두 괜찮아 보인다. 그러나 ListView 새로 고침 즉시 발생하지 않습니다. 따라서 누군가가 내 아이템을 확인/취소하는 경우 어댑터에 더 이상 존재하지 않는 데이터를 가리킬 것입니다 (하지만 여전히 ListView에 표시됩니다).

는 :

  1. 내가 3 번 항목을 선택하고 Delete 키를 누르 :

    내가 (1, 3, 2) 어댑터 조회 수 3 개 항목과 목록보기 말해봐. 이제 그들은 3 개보기 및

  2. 전화가 notifyDataSetChanged 어댑터 2 개 항목은 내가 쿼리합니다 3 항목을 선택 유지

  3. (가 새로 고침 시간이 없었 않았기 때문에 ListView에 여전히 3 개보기가 있습니다) 더 이상 존재하지 않는 항목에 대한 어댑터

내 상황은 어떻게 처리해야합니까? notifyDataSetChanged가 호출되고 ListView가 새로 고쳐지고 그 간격 내에 간격이있는 것 같으면 어댑터에서받은 모든 요청이 여전히 유효한지 확인해야합니다.

+0

코드 게시 ... – Triode

+0

'내 어댑터에 더 이상 존재하지 않는 항목을 쿼리하는 세 번째 항목을 계속 선택합니다. '그러면 디버거에서 보는 내용이 무엇입니까? 이 시점에서 충돌이 있습니까? Rajesh가 말했듯이 코드를 게시하십시오. –

+0

예, 충돌합니다. 아이템이 여전히 존재하는지 체크하지 못하도록 막을 수는 있습니다 만, 그것이 올바른 방법인지 궁금합니다. – mmmm

답변

0

목록 항목을 삭제하려고합니다.

filelist.remove("your selected item position".intValue()); 

이렇게하면 문제가 해결 될 수 있습니다.

관련 문제