2014-09-04 2 views
1

나는 List with Activity 뷰를 가지고있다.주기적으로 ListView에서 항목을 제거하는 방법은 무엇입니까?

각 항목의 만료 날짜가 있습니다.

해당 날짜가 지나면 해당 항목이 UI에서 사라지길 원합니다.

어떻게 개발하겠습니까?

1) 알람 manger- 그러나 단지 하나의 항목을 제거 할 경우에도 전체 목록 (20+)를 통해 갈 효율적인 것 :

나는 생각?

2) 또한 목록을 강제로 새로 고칩니다. 데이터 무효화 - 전체 목록이 다시 그려지며 하나의 항목 만 제거하려고합니다.

3) 아마도 지연 이후입니다. 그러나 특정 날짜가 아니라 X 밀에서 실행되도록 "보내는"방법을 알고 있습니다. (변환하기가 더 번거롭지 만 큰 것은 아닙니다.)

무엇을 권하고 싶습니까?

답변

0

1) 알람 manger-하지만이 전체 목록을 통해 갈 효율적인 것 (20+) 하나의 항목을 제거 할 경우에도?

2) 또한 목록을 강제로 새로 고칩니다. 다시 그리도록 전체 목록의 원인이되고 난 그냥 하나 개의 항목

3) 아마도 게시물 지연을 제거 할 - 데이터 을 무효로합니다. 당신이 당신의 목록을 무효화 할 때 그러나 나는 "보내기"는 하지 ( 변환이 아니라 큰 문제가 더 복잡) 특정 날짜에, X의 밀리 트리거 할 방법을 알고

그것은 의미하지 복용량 귀하의 목록이 완전히 그려집니다 그냥 표시 항목은 7-8 단지 목록 항목 크기에 따라 그려 것입니다 의미합니다. 문제에 대한

내 솔루션 :

활동 만들거나 onRseume 검사 날짜에 더 목록을 업데이트 할 바로 그 때. 당신의 활동이 보여지지 않을 때 왜 당신은 날짜를 보려고합니까? 활동이없는 경우 UI가 없습니다.

0

목록에있는 항목에 ID를 부여 할 수 있습니다. 이렇게하면 목록이 업데이트되었지만 새 위치로 이동하는 경우에만보기가 다시 만들어지지 않습니다. 이것은 당신이 단순히

public int getPositionForView (View view) 

을 무시하고

알람 관리기이 적합한 도구 같은 소리하지 않는 삭제 된 항목에 대한 AdapterView.INVALID_POSITION을 반환해야 작동합니다하지만 당신은 동안 휴면 새 스레드를 시작할 수의 경우 잠시 후 Observer/Observable Interface를 통해 어댑터를 알리는 데이터를 변경합니다. 그러나 Activity.runOnUiThread()를 호출하는 것을 잊지 마십시오. 그렇지 않으면 예외가 발생합니다.

관련 문제