이번에 Tab을 사용해보면서 안것이지만.. 안드로이드에서 tab을 사용하는 방법은 정말 많다.
Activity를 상속받고 (Tabhost - TabWidget - FrameLayout).xml을 사용하는 방법도 있고 TabActivity를 상속받아 getTabHost()를 사용하여 TabHost를 가져와서 tab을 추가하는 방법도 있다.
내가 만드는건 하나의 Tab 안에서 사용자의 동작에 따라 해줘야 할게 많을 것 같아서 Tab을 Activity로 구성하는 방법으로 해봤다.
main.xml
xml은 위와 같이 TabHost안에 LinearLayout을 두고 그 안에 TabWidget과 하부 화면을 담당할 FrameLayout을 넣었다.
ImageEditorMainActivity.java
Tab 추가 전에 tabHost.setup()을 해야 한다. 만약 activity 호출을 위한 intent를 content로 설정하기 위해서는 tabHost.setup() 대신 tabHost.setup(getLocalActivityManager())을 해야 한다.
그런데 Actvity를 extends 한 경우에는 getLocalActivityManager()가 없다. 왜냐하면 TabActivity extends ActivityGroup extends Activity 이고, getLocalActivityManager()는 ActivityGroup class에 있는 메소드이 이기 때문이다.
따라서 위와 같이 extends ActivityGroup을 해주고 setup을 진행해 줘야 한다.
사실 위 스크린샷과 같이 화면 구성을 할거면 extends TabActivity 를 하여 간단하게 구현할 수 있다. 내가 이리 삽질을 한것은 tab은 하단으로, 화면은 Activity로 구성하고 싶어서다.
main.xml
|
'Android > Tip&Tech' 카테고리의 다른 글
TabActivity 내에서 ActivityGroup을 사용할 경우의 Navigation 처리 (0) | 2011.03.21 |
---|---|
Android 하단탭 아이폰처럼 꾸미기 (TabHost 이용) (0) | 2011.03.17 |
Changing the Android EditText UI Widget (0) | 2011.03.15 |
android 로그인 처리 예제 (0) | 2011.03.15 |
안드로이드 사용자 MAC 주소 및 전화번호 가져오기 (0) | 2011.03.14 |