2013年3月16日 星期六

Tab View: Different Tab Content in different Activity

since: 2013/03/16
update: 2013/03/16

reference:
Chickenrice's Workshop: [Android] 建立Tab View的三種方式(下)

A. 在專案的 res/layout 目錄下新增 tab1.xmltab2.xml
// tab1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView android:id ="@+id/tab1_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="I'm Tab 1"
        android:textSize="18sp" /> 

</LinearLayout>


// tab2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
    <TextView android:id ="@+id/tab2_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="I'm Tab 2"
        android:textSize="18sp" /> 
   
</LinearLayout>


---------------------------------------------------------------------------

B. 在專案的 src 套件目錄下新增 Tab1.javaTab2.java:

// Tab1.java
package home.android.hello;

import android.app.Activity;
import android.os.Bundle;

public class Tab1 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab1);
    }    

}


// Tab2.java
package home.android.hello;

import android.app.Activity;
import android.os.Bundle;

public class Tab2 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab2);
    }

}

---------------------------------------------------------------------------

C. 修改專案的 AndroidManifest.xml 檔案
     新增以下的設定:
....

        <activity android:name="home.android.hello.Tab1"
                  android:label="這是Tab1" >
        </activity>
       
        <activity android:name="home.android.hello.Tab2"
                  android:label="這是Tab2" >
        </activity>  
     
       
    </application>

</manifest>


---------------------------------------------------------------------------

D. 修改專案 src 套件目錄下的 MainActivity.java 如下:
package home.android.hello;

import android.os.Bundle;
import android.app.AlertDialog;
//import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;


public class MainActivity extends TabActivity implements OnTabChangeListener {   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        //取得Tabhost參考
        TabHost tabHost = getTabHost();       
       
        //設定各tab頁面
        tabHost.addTab(tabHost
        .newTabSpec("tab1")
        .setIndicator("TAB1")
        .setContent(new Intent(this, Tab1.class))
        );
                     
        tabHost.addTab(tabHost
        .newTabSpec("tab2")
        .setIndicator("TAB2")
        .setContent(new Intent(this, Tab2.class))
        );
       
        tabHost.setOnTabChangedListener(this);   


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


    @Override
    public void onTabChanged(String tabId) {
        // TODO Auto-generated method stub
        new AlertDialog.Builder(this).setTitle("Hint").setMessage(tabId)
        .setPositiveButton("OK", null).show();
       
    }

   
}

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。