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

프래그먼트와 액티비티를 혼용해서 유기적으로 쓰고 싶습니다

0 추천
프래그먼트 액티비티 A가 있고 안드로이드 스튜디오 제공 프래그먼트 NavigationDrawer인 F가 달려있습니다.

왼쪽에서 슬라이드 되는 메뉴구현과 메뉴선택인덱스를 프래그먼트 F가 처리해서 액티비티 A의 주화면에 FRAG1, FRAG2, FRAG3... 을 메뉴인덱스에 따라 뿌려줍니다. (FragmentManager..(중략).replace(..).commit()으로 바꿔가면서). FRAG1, 2, 3은 모두 listview를 UI로 가집니다.

여기서 액티비티 B가 있습니다. B는 리스트뷰(FRAG1, 2, 3중에서 선택적으로)와 데이터를 업데이트하고 DB에 소켓통신으로 저장합니다.

즉 B는 데이터 입력 액티비티예요..A에 의해 호출되는..

B가 맡은일을 끝내고 나서 A로 돌아오는데 여기서 i = new Intent(this, ActivityMain.class), startActivity(i) -->finish() 이렇게도 해보고 인텐트를 쓰지않고 finish()만 했습니다.

 

첫번째방법은 아예 액티비티 A가 새로 만들어지더군요..(onCreate()가 호출됨)

두번재방법은 액티비티 A가 보존되었습니다..대신 완벽히 보존되다보니 FRAG1(또는 2,3)까지도 보존되서 리스트뷰가 업데이트가 되지를 않습니다.

첫번째 방법을 쓰든지 두번째 방법을 쓰든지 해서 테스트앱을 만들고 싶은데 잘 안됩니다.. 어떻게 하면 액티비티B를 작업완료한 후에 돌아오면 그 결과가 FRAG1,2,3에 반영되게 할 수 있을까요?
클리히 님이 2015년 9월 13일 질문
2015년 9월 14일 수정

1개의 답변

0 추천
A -> B를 호출시 startActivity가 아니라 startActivityForResult로 호출해 줍니다

그러면 B를 종료하고 A로 돌아올 때, onActivityResult메소드를 타게 됩니다

거기서 각 프래그먼트의 리스트뷰를 업데이트 해줍니다. (이벤트를 날려주시던지 방법은 여러가지)
cc1232 (35,280 포인트) 님이 2015년 9월 14일 답변
도움이 되었습니다. 감사합니다^^
...