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

어댑터에서 데이터 변경

0 추천
adapter에서 버튼 클릭시 인텐트로 넘어갔다가 해당 액티비티에서 adapter의 데이터 변경 후 다시 adapter의 뷰로 돌아가게 되어있는데요 (데이터는 Application의 공용변수) 인텐트에서 데이터 변경후 finish 하고 뷰로 돌아왔을때 데이터를 바로 변경하게 할 수 있는 방법이 있나요?
지나가는참새 (640 포인트) 님이 2016년 3월 16일 질문

2개의 답변

0 추천
 
채택된 답변
액티비티를 호출하실때

startActivityForResult로 하신 후

onActivityresult에서

adapter.notifyDataChanged()

하시면 될것같습니다.
모나미153 (17,540 포인트) 님이 2016년 3월 16일 답변
지나가는참새님이 2016년 3월 16일 채택됨
adapter를 사용하는 화면이 프래그먼트인경우는 어떻게 해야하죠 ㅠㅠ
fragment의 경우에도 onActivityresult를 받을 수 있습니다.
0 추천
우선 해당 데이터를 Application의 전역변수로 관리가 되어져야 하는지에 대해 고민해보시기 바랍니다.

데이터의 종류가 어떤 것인지는 모르겠으나 여기저기서 해당 데이터에 접근하여 수정하게 된다면

버그 발생의 요지가 크고 추후 관리하기도 어렵게 됩니다.
클린코드 (300 포인트) 님이 2016년 3월 16일 답변
서버에서 받은 유저정보를 여기저기서 사용하고 조작해야 될 필요가 있는데, 필요하고 조작할때마다 서버에서 새로 받으면 부하가 클것같아서 중요한 사항이 아니면 한번 받은 서버데이터를 전역변수로 저장 후 사용하려고 했는데 제가 사용하려는 방법이 문제가 많을까요? 보통 저같은경우는 필요시마다 항상 서버에서 데이터를 새로 받아 조작하나요?
이런쪽이라면, Application 보다는 SharedPreferences가 더 적절해보입니다.
아 그렇군요! 비슷하게 현재 어댑터에서 사용하는 리스트아이템 데이터도 서버 데이터인데 비슷한이유로 전역변수 처리하고 싶은데 리스트 아이템이고 여러개인데 이경우는 어떤식으로 하는게 효율적일까요??
서버에서 데이터를 가져오는거라면, 어차피 필요할 때마다 요청하는게 좋습니다.
웹 요청이 연결만 잘 되어있다면 생각보다 부하가 많지는 않아요.
물론 데이터의 양에 따라 좀 달라지기는 하겠지만
크게 문제는 없을것 같네요.
sharedPreference 사용하는 것도 제가 원래는 파일로 관리를 했었는데 읽고쓰는 비용이 큰것같아 Application으로 변경하려고 했던 것인데 sharedPreferences도 파일이라 기존 그대로 가면 되는 거겠죠??.. 그런데 그런방식으로 했을때 에러가 하나 있었는데 데이터를 파일에 저장하고 다른데서 읽는데 특정경우에만 읽어지지 않는 경우가 있었습니다. 저장될때는 잘 저장된게 확인이 되었구요 혹시 이유가 뭔지 알고 계신가요?ㅜ
이유는 잘 모르겠지만 SharedPreferences 사용시 MODE_PRIVATE과 관련된 문제가 아닐까요?
sharedPreferences가 아니어서 ㅠㅠ 아무튼 감사합니다ㅎㅎ 더해보겠습니다
보통 리스트의 목록 데이터같은 경우 클라이언트에 저장하지 않고 대부분의 경우 서버로 항상 요청을 합니다.
그리고 설정 데이터 등을 보통 SharedPreferences에 따로 저장하구요.
SharedPreferences를 사용한다고 해서 매번 파일 읽기,쓰기를 하는게 아니라 구현하기 나름입니다. 한번 읽고 나선 앱 메모리에 올려놓고 읽으면 되니깐요.
...