오늘은 tabhost를 이용한 안드로이드 어플리케이션 제작입니다. 상당히 편리하며, 여러가지 메뉴를 한 화면에 표시할 수 있어 활용도가 높지요.
그러나, 요즘에는 viewpager나 fragment 등 다양한 표현방법이 있어 사용도가 떨어지긴 합니다만, 안드로이드를 처음 접하신 분들에게는 이만한 것이 없을 것 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <TabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content"></TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <LinearLayout android:layout_width="match_parent" android:layout_margin="5dp" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/background_shape"/> </FrameLayout> </LinearLayout> </TabHost> | cs |
위 xml파일은 tabhost를 사용한 것인데요. 중요한 것은 tabhost id 등입니다.
TabHost => android:id="@android:id/tabhost"
TabWidget => android:id="@android:id/tabs"
FrameLayout => android:id="@android:id/tabcontent"
이 세개의 이름은 정해져있습니다. 이 이름대로 사용하셔야 합니다. 위 코드를 보시면 도움이 될 것입니다. 그리고 자바파일에서는 아래와 같이 사용하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public class MainActivity extends TabActivity implements View.OnClickListener { TabHost mTabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); mTabHost = getTabHost(); //1번 tab TabHost.TabSpec tabFirst = mTabHost.newTabSpec("first") .setIndicator("1번 title"); //1번 탭에 해당하는 layout 설정 tabFirst.setContent(R.id.first_layout); mTabHost.addTab(tabFirst); //tab 추가 //2번 tab TabHost.TabSpec tabSecond = mTabHost.newTabSpec("second") .setIndicator("2번 title"); //2번 탭에 해당하는 layout 설정 tabSecond.setContent(R.id.second_layout); mTabHost.addTab(tabSecond); //tab 추가 mTabHost.setCurrentTab(0); //처음 보여질 tab 설정 ... | cs |
이상입니다. 참고되었으면 좋겠습니다.
'[미네르바's IT] > [미네르바's 안드로이드]' 카테고리의 다른 글
안드로이드 strings.xml 특수문자 삽입방법 (0) | 2017.07.25 |
---|---|
자바 protected 접근한자 (0) | 2017.07.24 |
안드로이드 android:stretchcolumns 및 tablelayout 속성 (0) | 2017.07.20 |
안드로이드 selector 이용하기 (0) | 2017.07.19 |
안드로이드 timepicker 시간 가져오기 (0) | 2017.07.18 |