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

A Activity Fragment에서 B Actvity Fragment 호출하는 방법

0 추천

이미지

MainActivity(B)에 이러한 메소드가 있습니다. 해서 MainActivity 에서 다른 Fragment 화면을 호출하는 용도로 사용하고 있는데요 ContentListActivity(A)에 ContentListFragment 화면이 있는데 B에서 A의 Fragment는 호출이 됩니다. 그런데 ContentListFragment에서 A 의 setFragment 함수를 호출하고자이미지

로그인화면 보여주기 주석 아래처럼 저렇게 실행을 하고자 하는데 이미지

위와같은 상황이 나옵니다. 해당 사항의 이유는 ContentListFragment의 부모가

ContentListActivity 이기때문에 MainActivity의 setFragment 함수를 호출할 수 업다

즉 ((MainActivity)getActivity()).setFragment(LoginFragment.newInstance ~..

이걸 사용할 수 없다는건데 이에대한 해결책을 모르겠어서 질문드립니다.

장비 업계 프로그래머로 일한지 1년 조금 넘어서 모바일쪽 입문한지 2달밖에 안되었는데 해당 툴을 개발하던 개발자가 중간에 나가고 제가 들어와서 안되어있는 부분을 추가개발 및 앞으로 유지보수해야 하는 그런 상황이라 막막하고 어떻게 해결을 해야할지 몰라 질문드립니다. Otto를 사용하라는 이야기도 있고 startActivityForResult 와 onActivityResult를 혼합해서 쓰라는등의 이야기도 있는데 제 상황에 딱 맞는 예제가 없어서 고초를 겪고 있습니다. 선배님들의 고견 및 조언을 기다립니다.

익명사용자 님이 2017년 2월 2일 질문

1개의 답변

0 추천

질문글을 쓰실 때는 답변을 달아줄 사람들이 한 눈에 이해하기 쉽게 적는게 중요합니다. http://www.masterqna.com/android/1 이 글에 나오는 것처럼요. 게다가 로그 전체가 아닌 저렇게 다 읽을 수도 없게 이미지로 붙여버리면 보는 사람의 기기에 따라서는 다 못 읽을 수도 있습니다. 앞으로도 프로그래머로 밥 벌어먹으려면 질문글을 올리는 것에 더 많은 정성을 들이세요. 

https://susemi99.gitbooks.io/howto-for-beginners/content/ 이 글도 읽어보시고요.

 

답변으로 들어가보자면, MainActivity에서 ContentListActivity를 호출했고, ContentListActivity 에서 MainAcctivity의 화면을 바꾸는 특정 메소드를 호출하는 게 맞나요? ContentListFragment 에서 호출하는 getActivity()는 ContentListActivity 이니 당연히 클래스가 다르다는 오류가 나야 정상입니다. 

ContentListActivity 화면을 닫아야 한다면 startActivityForResult 와 onActivityResult를 이용하거나, 다른 꼼수를 써야하고, 그게 아니라면 LoginFragment를 표시하는 새 activity를 띄워야겠네요. 

쎄미 (162,410 포인트) 님이 2017년 2월 2일 답변
...