@Override
public void onBackPressed() { //뒤로가기 처리
NavigationGroupActivity current = (NavigationGroupActivity)getLocalActivityManager().getActivity("TabHost_FirstTab");
current.onBackPressed();
}
안녕하세요.. 하루종일 해봐도 잘 안되서 염치없이 또 올립니다.
선달님의 강좌를 보고 액티비티 그룹을 사용해보려 하는데 탭호스트에서 직접 컨트롤 하려 하니 잘 안되네요.. 프레임에서는 잘 되구요..
액티비티그룹은 TabHost_FirstTab 입니다.
탭호스트 내 버튼을 클릭하였을 시 저녀석이 상속받은 NavigationGroupActivity의 뒤로가기 루틴이 수행되면 좋겠는데..
어찌해야할지를 모르겠네요..
답변 부탁드려보며 즐거운 하루 되십시요.
아 화이트님 아까 쪽지 수신거부로 되어있어서 쪽지를 못드렸습니다..
말씀하신대로 NavigationGroupActivity에서 history 사이즈를 리턴하는 메소드를 하나 만들긴 했는데..
NavigationGroupActivity <- 여기에 어떻게 접근을 해야하는지를 잘 모르겠습니다..
물론 history는 static로 관리를 하려 하구요..
단순하게 하나의 탭만을 사용하게된다면
public static NavigationGroupActivity staticInstance; 하시고
NavigationGroupActivity의 OnCreate부분에서
staticInstance = this; 하면되는데.. 그렇지 않고 여러탭을 사용하게되면
여러 탭중 제일 뒤에 만들어진 NavigationGroupActivity 의 객체가 staticInstance 에 저장됩니다.
그렇게되면 각 해당 NavigationGroupActivity 의 객체들에 접근을 못하는 문제가 발생하여 저는 아래와 같이 했습니다.
저같은 경우는 NavigationGroupActivity를 상속받은 자식 클래스를 탭의 수만큼 만들어서
해당 NavigationGroupActivity를 static으로 관리하여 선택된 탭의 위치로
자식클래스의 static 인스턴스에 접근하여 사용하였습니다.
이와 관련된 문서 하나 참고하시라고 띄워드립니다.
GDD 2010: Excellence in the Android User Experience의 문서에서
26페이지를 보면 DON’T alter the back stack if you’re using tabs 라고 써있습니다.
일단 저도 어거지로라도 해보려 합니다. 말씀하신데로 static로 그룹앱티비티를 받는건 이해를 하겠는데 탭호스트에서 어떻게 접근을 해서 호출을 해야하는지요.. 말씀하신건 이해가 가는데 코드로 짜려니 답답하네요.. 탭이 이렇게 컨트롤하기 번거로운줄 알았으면 애초부터 탭을 안썼을텐데 이제와서 뒤로 갈수도 없고.. >.,<
저같은 경우는 탭액티비티 있는 부분에서 finish()를 오버라이드 하여
선택된 탭의 해당하는 NavigationGroupActivity의 history 뎁스를 가저와
뎁스가 1 보다 크면 해당 인스턴스의 back을 호출하게 짰습니다.
선달님의 강좌에 소스를 더 플러스하여 짰습니다.
NavigationGroupActivity에 히스토리 사이즈를 가저오는 메소드를 추가하였고,
메인 액티비티에서 해당 탭마다 NavigationGroupActivity의 객체를 접근하기위해
해당 객체가 만들어질때 상단에 static으로 자신의 객체를 관리하였습니다.