메인액티비티가 있습니다
메인액티비티에 버튼 3개를 놓고, 버튼마다 1-1,1-2,1-3 액티비티로 이동을 한 후 각 액티비티에서 데이터를
다시 메인액티비티로 가져오려는데.. 1-1에서 가져오고나서 다시 1-2에서 가져오는데 메인액티비티에 1-1 데이터가 사라지고 1-2의 데이터만 가져옵니다..
물론 각 액티비티마다 뿌려주는 텍스트뷰는 다릅니당..ㅠㅠ
안사라지게 할 방법이 없을까요 ??
A,B,C 액티비티에서는 어떤 설정을하고, 그 내용을 Main에서 보여주려고 하시려고 하는 것 같습니다.
이 경우에는 DB를 이용하거나 SharedPreferences를 이용해서 데이터를 관리해주시는게 낫습니다.
그러면 굳이 데이터를 A에서 설정한 데이터를 Main으로 넘기려고 하지 않으셔도 됩니다.
A,B,C에서는 DB나 SharedPreferences에 데이터를 쓰고, Main은 DB나 SharedPreferences에서 데이터를 가져오면 되는거죠..
만약 일시적으로 사용하는거라면.. 그냥 변수에(메모리상에) 값을 보관해도 될 것 같습니다.
MAIN → A 로 이동후 다시 Main으로 돌아 갈 때는 finish()를 하시지요? 그러면 Main의 onActivityResult() 메소드가 호출이 됩니다.
그러면 onActivityResult() 내에서 데이터를 저장하신 후, B엑티비티를 호출하면 되겠죠. 데이터 저장하는 것은 일반 변수나.. 뷰든 상관 없겠죠.. 그리고 이것은 A,B,C 액티비티 호출을 startActivityForResult()로 호출한 경우에 가능하겠죠.
수정된 이미지를 보았습니다. "데이터를 가지고 돌아온다" 라는 표현이 무얼 의미하는 걸까요? 액티비티는 startActivity로 실행했는지, startActivityForResult로 실행했는지... 아무래도 onActivityResult의 두번째 인자 Intent로 데이터를 받았다는 의미로 추정해봅니다. "텍스트로 저장"은 무슨 의미일까요... TextView에 setText한 걸 말하는 것 같기도 하네요. 혹은 EditText인가요? 암튼 여기서 TextView의 경우 id를 지정해 준다 하더라도 액티비티 재생성 과정에서 setText로 설정한 값을 유지하지 않습니다. 따로 String 변수를 두어 복원해주는 코드가 필요합니다. EditText의 경우, layout에 id를 지정해 놓았다면 setText 한 내용이 유지됩니다. 더 오래 유지해야 하는 값이면, file, shared pref, db 등의 방법 중에서 선택 사용하시면 됩니다.
질문 중 일부가 이해가 잘 되지 않는군요...
MAIN → A → B → C 호출 후 C → MAIN으로 데이터를 가져오고자 하는 건가요?
또는 C → B → A → MAIN 여튼.. 어느정도 하셨다면.. onActivityResult()로 구현을 했을 것 같은데.. 맞나요..?
만약 그런데도 안된다면.. 아래의 Activity::onNewIntent를 오버라이드 하신 후 해보시길 권합니다.