TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("1234")
.setContent(new Intent(this, class1.class)));
탭을 이용해서 위와 같은 방식으로 4개의 탭버튼을 만들었습니다.
각탭에 액티비티를 연결하여 탭 선택시 해당 액티비티가 탭안들어도 들어와서 실행이 잘됩니다.
여기서 문제가 탭선택에 의해 탭안으로 들어와서 실행된 액티비티에서 버튼 클릭으로 다른 액티비티로 이동될때
탭안에서 액티비티 전환이 이루어지고 싶은데요. 이렇게 할 경우 탭이 사라지고 전체화면으로 새로운 액티비티가 이동됩니다.
뭐 이게 당연한거니까 이렇게 결과가 나오겠지만 제가 원하는 방향은 탭을 유지한체 탭안에서의 액티비티 전환이 이루어졌으면
하는데요. 검색을 해봐도 자세한 답변이 없고 워낙 초보자라 다시 재 질문을 하게 되었습니다.
고수님들의 쉬운 예제와 설명 가르침 부탁드립니다.^^;
탭안에서 이벤트를 발생시켜서 다른 탭을 불러오고 싶다는 말씀이신가요?
가능합니다. 간단히 방법을 알려드리자면
setCurrentTab(int id) 를 호출 해주시면 되는데요
setCurrentTab 메소드는 TabHost를 포함하는 Activity 에서 사용할 수 있으므로
다른 activity 에서 사용하려면 putExtra - getExtra 를 통해서
setCurrentTab(int id) 에 사용 될 id 값을 보내주고
그 걸 받아서 setCurrentTab 을 선언해 주는 방법으로
구현 할 수 있습니다.
다만 이경우 탭별로 스택을 유지하면서 뒤로가기를 구현하겠다 하시면 다른 방법을 추천드립니다.
아니면 그냥 앞으로 가기로 구현하시던가...
ActivityGroup과 LocalActivityManager를 활용하는것도 방법입니다.
탭은 그냥 두고 탭의 sub Activity를 ActivityGroup으로 만들어서 LocalActivityManager를 활용하는것인데
구현 한번 잘해두면 가장 깔끔하게 쓰실수 있을거라 생각합니다.
역시나 다양한 방법의 구성 방법이 있군요!
현재 ActivityGroup과 LocalActivityManager를 활용해서 구현했어요! 이게 제가 원하는 방식이긴 한데요
그냥가자님의 말처럼 탭별로 스택을 유지하면서 뒤로가기 구현하는게 좀 문제가 되네요!
뒤로가기를 누르면 어플의 메인화면으로 가더군요! 이문제 때문에 또 고심중이랍니다^^
그리고, 리드님이 화면 전환을 하고 싶을 때, 기존의 LinearLayout을 gone으로 하고, 새로운 LinearLayout을 visible로 하시면 됩니다.