마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DB에 insert할 때 마다 바로바로 리스트뷰에 보여주고싶어요

0 추천
지금은 커서어댑터 사용해서 리스트뷰에 뿌려주는 형태인데

바로바로 받아온 값을 리스트뷰에 나타나게 하고싶습니다.

지금 액티비티가 A라는 액티비티와 B라는 액티비티가 있는데

A에서 블루투스로 값을받아와 Db에 저장 시키고

B에 있는 리스트뷰에 뿌려주게 되어있습니다.

 

제가 궁금한것은 B액티비티를 띄운 상태에서 블루투스로 값을 받아오면 DB에 저장도 되고

액티비티를 껏다 다시들어가면 리스트뷰에 기록이 되어있는데 가만히 켜놓은 상태에서는

바로바로 갱신이 되지않습니다. 어떻게 해야될까요 고수님들 도와주세요 ㅠㅠ
고수가되고싶어요 (720 포인트) 님이 2016년 7월 4일 질문

2개의 답변

+1 추천
 
채택된 답변
BroadcastReceiver 를 한번 알아보세요 insert 후에 리시버에 신호를 보내고

B액티비티에서 신호를 받으면 갱신하는 작업을 해주면될것 같습니다.
캬옹이 (37,920 포인트) 님이 2016년 7월 4일 답변
고수가되고싶어요님이 2016년 7월 4일 채택됨
넵 감사합니다. 하나만 더 여쭤볼게요 ㅠㅠ
A액티비티에서 BroadcastReceiver로 값을 받고 DB에 저장하는데
B에서는 DB에 저장된 값을 리스트뷰에 뿌려주거든요.
님 말씀은 B에서도 따로 BroadcastReceiver를 만들어서 받으라는 말씀이신가요??

혹시 제가 커서어댑터를 쓰는데 autoRequery란게 있던데 그걸 true로 해줘도
갱신이 되진 않더라구요.. 이걸 쓰는 방법은 없을까요 ??
음..일단 질문을 더 구체적으로 올리셔야 할것 같구요.
제가 이해한 질문은 A에서 인서트 작업은 되는데 B에서는 디비에 데이터가 저장되는 시점을 몰라서 어댑터 갱신 시점이 언제인지 모르겠다고 이해했거든요.
그냥 다른문제 없이 단순히 커서어댑터에서 새로고침을 원하시는건가요?
디비에 저장은 A에서 모두 끝내고 B에서는 select문 쿼리로 커서어댑터 연결해서
리스트뷰에 뿌려주는거만 하거든요. 그니까 A -> B 이렇게 B를 실행시켜서 화면을 가만히
띄워두고 블루투스로 값을 쏴주면 DB로 차곡 차곡 저장은 잘되는데 실시간으로 리스트뷰에
갱신이 안됩니다.. B를 다시 열면 갱신 되어있구요..

단순히 커서어댑터 새로고침을 하는건 어떻게 하는지 아시는지요..??
0 추천
자답입니다.

캬옹이 님 말씀대로 A에서 블루투스로 브로드캐스트 리시버로 값을 받아올 때

A의 리시버안에 B로 sendBroadcast 해서 B에서 브로드캐스트리시버로 액션을 받고

액션을 받으면 리스트뷰 갱신하는 코드를 넣으니 잘 동작 됩니다. 감사합니다.
고수가되고싶어요 (720 포인트) 님이 2016년 7월 4일 답변
...