안녕하세요.
adapter.notifyDataSetChanged(); 를 이용해서 리스트뷰를 갱신하는데, 갱신 타이밍을 못잡아서 질문드립니다.
두개의 액티비티 클래스(A,B)가 있습니다.
클래스A는 B로 이동하는 버튼 하나만 있습니다. 클래스 A에서 버튼A를 눌러서 B클래스로 이동하면,
intent로 새로운 레이아웃이 뜨고, B클래스내에서 작업을 처리합니다.
B클래스 안에는 listview와 갱신 버튼이 있는데요, DB 테스트 중이라 간단하게 listview에 있는 회원 이름을
바꾸도록 만들었습니다. 현재 리스트뷰에 김아무개 22살 이런식으로 값을 넣었구요,
갱신 버튼을 누르면 김아무개의 나이를 20살로 바꾸도록 쿼리문도 짰습니다.
값은 제대로 변경이 되는데, 다만 한가지 문제점이.. 갱신버튼을 누르고 확인[다이얼로그] 을 누를 때
listView의 기존의 김아무개 22살->김아무개 20살 로 즉시 변경되도록 하고 싶은데, 확인을 눌러도 값이 바로 변하지 않네요. 뒤로 버튼을 눌러서 B에서 나온 후, A클래스에서 버튼A를 눌러 B클래스로 이동하면 그제서야 값이 바뀐게 보입니다.
dialog.setButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(getApplicationContext(),
"확인버튼누름", Toast.LENGTH_SHORT).show();
update_info();//김아무개의 나이를 변경하기 위한 함수
adapter.notifyDataSetChanged();//변경된 데이터 확인 후, 화면 갱신
dialog.dismiss();//자동닫기
}
}); //확인
이런식으로 구현했습니다. 혹시 adapter.notifyDataSetChanged();의 위치가 잘못된걸까요?