안드로이드 개발 질문/답변
(글 수 45,052)
아이폰에서 안드로이드로 포팅중입니다.
우선 탭을 하단부로 위치시키고자 하는데 이 경우 직접 구현해야 한다고 들었습니다. TabActivity가 복수의 Activity를 포함하듯이 화면의 일정 영역에 다른 Activity를 보여주는 방법이 있는지 알고 싶습니다. ActivityGroup을 이용하면 가능한지요? 그게 안 된다면 하나의 Activity가 View를 바꿔가면서 보여주는 방식으로 구현해야 할까요?
우선 탭을 하단부로 위치시키고자 하는데 이 경우 직접 구현해야 한다고 들었습니다. TabActivity가 복수의 Activity를 포함하듯이 화면의 일정 영역에 다른 Activity를 보여주는 방법이 있는지 알고 싶습니다. ActivityGroup을 이용하면 가능한지요? 그게 안 된다면 하나의 Activity가 View를 바꿔가면서 보여주는 방식으로 구현해야 할까요?
2010.07.09 09:28:11
ActivityGroup를 사용한다면 가능합니다. 그 외에도 LocalActivityManager가 필요합니다.
아래는 제가 이전에 테스트용으로 만든 소스 입니다.
보시면 두개의 Activity를 불러와서 현재의 Activity에 출력하는 내용입니다.
출력영역이 LinearLayout ll_1, LinearLayout ll_2 로 되어 있는데 테스트로 현재의 Activity의 출력영역을 상하단으로 분리하고 각 각의 이름을 layout1, layout2라고 표한한 것입니다.
-----------------------------------------------------------------
public class group extends ActivityGroup {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.group);
LinearLayout ll_1 = (LinearLayout)findViewById(R.id.layout1);
LinearLayout ll_2 = (LinearLayout)findViewById(R.id.layout2);
LocalActivityManager mLocalActivityManager = this.getLocalActivityManager();
Intent intent = new Intent(this, testView.class);
Window w = mLocalActivityManager.startActivity("myDetailView", intent);
View activity1 = w.getDecorView();
Intent intent2 = new Intent(this, testView2.class);
Window w2 = mLocalActivityManager.startActivity("myDetailView2", intent2);
View activity2 = w2.getDecorView();
ll_1.addView(activity1);
ll_2.addView(activity2);
}
}