タブ画面を切り替える

2011/03/04
Androidでタブ画面を切り替えるには、TabActivityを利用します。

参考ページ

Android Tab Layoutタブメニューを利用する

サンプルコード


<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@android:id/tabhost"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent">  
    <LinearLayout  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:padding="5dp">  
        <TabWidget  
            android:id="@android:id/tabs"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content" >  
        <FrameLayout  
            android:id="@android:id/tabcontent"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"  
            android:padding="5dp" >  
    </LinearLayout>  
</TabHost>
TabActivity を利用数にはレイアウトを以下のように作成する (1) TabHost(id=tabhost) を追加する (2) TabWidget(id=tabs) と FrameLayout(id= tabcontent) を TabHost に追加する (3) TabHost addTab() で順番にコンテンツを追加 [java] public class Sample extends TabActivity implements TabHost.TabContentFactory { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TabHost tabhost = getTabHost(); tabhost.addTab(tabhost.newTabSpec("tab1") .setIndicator("追加", getResources().getDrawable(android.R.drawable.ic_menu_add)) .setContent(new Intent(Sample.this, RaceResultList.class) .setFlags(Intent. FLAG_ACTIVITY_SINGLE_TOP))); tabhost.addTab(tabhost.newTabSpec("tab2") .setIndicator("削除", getResources().getDrawable(android.R.drawable.ic_menu_delete)) .setContent(new Intent(Sample.this, RaceForecastList.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); [/java] (1) TabActivity を継承する (2) getTabHost() で TabHost を取得する (3) タブに追加する画面(Intent)を作成する (4) TabHost addTab() で順番に画面を追加する

タブが切り替わった時の、Intent の状態

「タブ切り替え」というより、Intent の Flags の仕様ですが、 setFlagsで、FLAG_ACTIVITY_CLEAR_TOP を指定するとタブを切り替える度に、onCreate が呼ばれる。 FLAG_ACTIVITY_SINGLE_TOP は一度作成したアクティビティが保持されます。 詳しくは、 Intent のCategoryとExtraとFlagの一覧表を作ってみたよ
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel 7 リリース
v-html でHTML表示する
Laravel で Vue コンポーネントを使う
Laravel で Nuxt.js を使ってみる(Docker環境)
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Dockerで不要なコンテナ・イメージを削除
Mac で Laradock の構築
yarn インストール&プロジェクト作成
Laravel 6.x 構築(Homestead編)
Composer インストール
nvm インストール
npm install が Mac でエラー
HTMLタグでカーソルが同時処理(ミラーリング)されてしまう
DI(依存性注入)
[Ubuntu]Let's Encryptで無料の証明書を利用する
[Apache]Apache2.4のアクセス制限が変更
[Ubuntu]rootのログインとsudo権限追加
タミヤ マイコンロボット工作セットをMacに接続してみた
pgAdimn4 でブラウザで開けなくなる
Java8 を HomebrewとjEnvで構築
Android Studio環境構築 2019
ロケールの再構築
vagrant グループに Apacheを追加