안드로이드 개발 질문/답변
(글 수 40,700)
안녕하세요.
List를 구현하고 있습니다.
ListActivity가아닌 Widget의 ListView를 상속받아서 구현하고 있는데요.
List에 채워진 Data가 수정된후에
ListView.getAdapter().notifyDataSetChanged();
를 사용하셔 adapter는 갱신되는데요.
List화면에 보여지는 View는 바로 갱신이 안되고,
삭제된 영역이 그대로 존재하다가 스크롤로 이동 후에 삭제된 영역으로 다시 오게되면 수정된 부분의 View가 갱신됩니다.
저는 data수정된 후 바로 갱신된 화면View를 원하고 있거든요...
수정된 시점에 ListView.invalidate()를 해도 바로 갱신은 안되고 있구요..
화면을 Repaint하는 방법이 따로 있지 않을까 싶은데..혹시 방법이 있나요?
List를 구현하고 있습니다.
ListActivity가아닌 Widget의 ListView를 상속받아서 구현하고 있는데요.
List에 채워진 Data가 수정된후에
ListView.getAdapter().notifyDataSetChanged();
를 사용하셔 adapter는 갱신되는데요.
List화면에 보여지는 View는 바로 갱신이 안되고,
삭제된 영역이 그대로 존재하다가 스크롤로 이동 후에 삭제된 영역으로 다시 오게되면 수정된 부분의 View가 갱신됩니다.
저는 data수정된 후 바로 갱신된 화면View를 원하고 있거든요...
수정된 시점에 ListView.invalidate()를 해도 바로 갱신은 안되고 있구요..
화면을 Repaint하는 방법이 따로 있지 않을까 싶은데..혹시 방법이 있나요?
2009.09.25 18:56:51
List는 notifyDatasetChanged()후에 수정된 DATA가 삽입되고 있습니다.
notifyDatasetChanged() 후에 BaseAdapter를 상속받은 class에 getView(int position, View convertView, ViewGroup parent)가불려져서
수정된 data를 채워지면서 repaint를 기대를 했는데요.......getView()가 불려지지 않습니다.
혹시 에뮬레이터에서 Menu key 버튼의 Event를 알고 계신가요?
Menu key를 누르면 List가 Repaint되어서 제가 원하는 상태가 보여지거든요.......^^
notifyDatasetChanged() 후에 BaseAdapter를 상속받은 class에 getView(int position, View convertView, ViewGroup parent)가불려져서
수정된 data를 채워지면서 repaint를 기대를 했는데요.......getView()가 불려지지 않습니다.
혹시 에뮬레이터에서 Menu key 버튼의 Event를 알고 계신가요?
Menu key를 누르면 List가 Repaint되어서 제가 원하는 상태가 보여지거든요.......^^
public void clearPhotos() {
//mPhotos.clear();
mPhotos.remove(mPhotos.size() / 2);
notifyDataSetChanged();
}
이렇게 수정하고 테스트 했습니다.
잘 작동합니다.
1. DATA수정
2. notifyDataSetChanged()