'안드로이드'에 해당되는 글 31건

오늘은 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


이상입니다. 참고되었으면 좋겠습니다.


블로그 이미지

미네르바98

안드로이드와 영화 리뷰, 생활정보에 관한 내용을 기재합니다.

,