Android 개발 의 TabActivity 사용법 실례 상세 설명

5684 단어 AndroidTabActivity
이 사례 는 안 드 로 이 드 개발 의 TabActivity 용법 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
프로필
TabActivity 는 같은 화면 에 더 많은 내용 을 수용 하기 위해 Activity 에서 계승 합 니 다.TabActivity 는 탭 페이지 의 기능 을 실현 하고 네 비게 이 션 표시 줄 을 통 해 각 페이지 를 관리 합 니 다.

2.XML 레이아웃 파일
주의:
1.TabActivity 의 레이아웃 파일 은 TabHost 를 XML 레이아웃 파일 의 루트 로 요구 합 니 다.
2.보통 우 리 는 선형 구 조 를 사용 하기 때문에의 하위 요 소 는입 니 다.
3.대응 탭
는 Tab 이 보 여줄 내용 을 포함 하 는 데 사 용 됩 니 다.
주의해 야 할 것 은의 Id 는 각각 android:id/tabs 와 android:id/tabcontent 를 사용 해 야 합 니 다.
시스템 은 TabHost 의 두 인 스 턴 스 변 수 를 초기 화 하기 위해 두 개의 id 를 사용 하기 때 문 입 니 다(mTabWidget 과 mTabContent).
4.코드 예시

<?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@android:id/tabhost"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
  <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
  <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">
</FrameLayout>
</LinearLayout>
</TabHost>

3.TabActivity
1.TabHost:TabHost 는 Tab 의 캐리어 로 Tab 를 관리 합 니 다.
2.TabHost 의 일부 함수
(1)가 져 오기

TabHost tabHost=this.getTabHost();

(2)TabHost.TabSpec 만 들 기

public TabHost.TabSpec newTabSpec (String tag)

(3)탭 추가

public void addTab (TabHost.TabSpec tabSpec)

(4)remove 모든 Tabs

public void clearAllTabs ()
public int getCurrentTab ()

(5)  현재 탭 설정(by index)

public void setCurrentTab (int index)

(6)현재 설정(Tab by tag)

public void setCurrentTabByTag (String tag)

(7)TabChanged 이벤트 응답 처리 설정

public void setOnTabChangedListener (TabHost.OnTabChangeListener l)

3.TabHost.TabSpec 에서 tab 의 label 과 content 를 설정 하려 면 TabHost.TabSpec 클래스 를 설정 해 야 합 니 다.TabHost.TabSpec 관리:

public String getTag ()
public TabHost.TabSpec setContent
public TabHost.TabSpec setIndicator

(1)Indicator 여기 Indicator 는 Tab 의 label 입 니 다.
label 설정:

setIndicator (CharSequence label)

label 과 icon 설정:

setIndicator (CharSequence label, Drawable icon)

어떤 view 를 지정 합 니 다:

setIndicator (View view)

(2)Content 는 Content 에 대해 Tab 의 내용 이 므 로
View 의 id 설정:

setContent(int viewId)

new Intent 로 다른 Activity 의 내용 을 도입 합 니 다:setContent(Intent intent)

package com.zhanglong.music;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
public class MainActivity extends TabActivity
{
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
     WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;
    intent = new Intent().setClass(this, ListActivity.class);
    spec = tabHost.newTabSpec("  ").setIndicator("  ",
             res.getDrawable(R.drawable.item))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, ArtistsActivity.class);
    spec = tabHost.newTabSpec("   ").setIndicator("   ",
             res.getDrawable(R.drawable.artist))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, AlbumsActivity.class);
    spec = tabHost.newTabSpec("  ").setIndicator("  ",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, SongsActivity.class);
    spec = tabHost.newTabSpec("    ").setIndicator("    ",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(0);
  }
}

더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기