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

Activity Dialog 관련 질문입니다. ListView에서 변수 전달, 변경 문제입니다.

0 추천
안녕하세요.

Activity Dialog 관련 질문 좀 할게요.

Activity를 Dialog로 띄워서 사용자에게 값을 받고 "OK" 누르면 띄운 부모 창으로 값을 전달받고 있습니다.
Dialog Activity에 로직이 들어가 있어서 단순 커스텀 xml AlertDialog가 아닌 Activity를 팝업으로 쓰고 있고요.
(AndroidManifest.xml 의 Activity 요소에 @android:style/Theme.Dialog 방식 사용)

부모 액티비티 안에서 팝업으로 사용할 때는 startActivityForResult(intent) 방식을 써서
부모 <-> 팝업 변수 전달하고, 팝업 Activity에서 "OK" 시 전달받은 변수로 처리하고 있습니다.

근데 문제는 이 방식으로 띄운 팝업 Activity를 listview customAdapter에서도 사용해야 합니다.
데이터(list)마다 띄울 때 값 전달하고 "OK" 시 변경된 값을 전달받고 선택했던 listview 안에 데이터를 변경해야 하는데 방법을 모르겠습니다.
listener, callback, 이런 걸 사용해야 할 것 같은데 지식이 짧아 깜깜합니다. (DatePickerDialog 처럼요)

방법 아시면 도움 좀 주세요.
힌트라도 주시면 정말 고맙겠습니다.

고맙습니다.
수고하세요!
디앤비 (210 포인트) 님이 2016년 4월 20일 질문

1개의 답변

+2 추천
 
채택된 답변

구체적인 내용은 모르겠지만..

startActivityForResult의 reqCode값에 리스트의 position을 전달하거나

startActivityForResult할때 해당 dialog(그러니까 activity)에 bundle로 position값을 담아서 주셔도 됩니다.

dialog에서 finish()하면

result받는 부분에서 reqCode값을 position값으로 보고

ArrayList의 해당하는 position값을 수정한 후

어댑터에서 notifyDataSetChanged를 호출해주시던지

dialog에서 setResult로 받아온 bundle값을 다시 저장 후

finish하시면

onresult에서 bundle값을 받아올 수 있습니다.

모나미153 (17,540 포인트) 님이 2016년 4월 20일 답변
디앤비님이 2016년 4월 21일 채택됨
모나미153 님 정말 많은 도움이 됐습니다!
고맙습니다!!
좋은 한 주 보내시고 수고하세요!
...