Android TabActivity 全套代碼(結合Layout XML檔案實現)

來源:互聯網
上載者:User

今天查了一下TabActivity的使用方法。網路上的文章不是很全面,且總結不夠細緻。所以特地將整幅代碼整理出來,已方便大家查閱。初次寫發布Android的原始碼,不足指出請大家不吝賜教~ 閑話少說,下面進入正題。

 

我的開發環境是 Eclipse + Android SDK1.6。

 

Manifest.xml:

<?xml version="1.0" encoding="utf-8"?><br /><manifest xmlns:android="http://schemas.android.com/apk/res/android"<br /> package="com.keven"<br /> android:versionCode="1"<br /> android:versionName="1.0"><br /> <application android:icon="@drawable/icon" android:label="@string/app_name"><br /> <activity android:name=".MainFrame"<br /> android:label="@string/app_name"><br /> <intent-filter><br /> <action android:name="android.intent.action.MAIN" /><br /> <category android:name="android.intent.category.LAUNCHER" /><br /> </intent-filter><br /> </activity><br /> </application><br /> <uses-sdk android:minSdkVersion="4" /></p><p></manifest>

 

MainFrame.java:

package com.keven;</p><p>import android.app.AlertDialog;<br />import android.app.TabActivity;<br />import android.os.Bundle;<br />import android.view.LayoutInflater;<br />import android.view.Menu;<br />import android.view.MenuInflater;<br />import android.widget.TabHost;<br />import android.widget.TabHost.OnTabChangeListener;<br />import android.widget.TabHost.TabSpec;</p><p>public class MainFrame extends TabActivity implements OnTabChangeListener {<br />private TabHost tabHost;<br />private TabSpec tab1, tab2, tab3;</p><p>@Override<br />public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />tabHost = this.getTabHost();<br />LayoutInflater.from(this).inflate(R.layout.main,<br />tabHost.getTabContentView(), true);<br />tab1 = tabHost.newTabSpec("Id1").setIndicator("Tab1",<br />this.getResources().getDrawable(R.drawable.icon)).setContent(<br />R.id.tab1);<br />tabHost.addTab(tab1);<br />tab2 = tabHost.newTabSpec("Id2").setIndicator("Tab2",<br />this.getResources().getDrawable(R.drawable.icon)).setContent(<br />R.id.tab2);<br />tabHost.addTab(tab2);<br />tab3 = tabHost.newTabSpec("Id3").setIndicator("Tab3",<br />this.getResources().getDrawable(R.drawable.icon)).setContent(<br />R.id.tab3);<br />tabHost.addTab(tab3);<br />tabHost.setOnTabChangedListener(this);<br />}</p><p>@Override<br />public void onTabChanged(String tabId) {<br />new AlertDialog.Builder(this).setTitle("Hint").setMessage(tabId)<br />.setPositiveButton("OK", null).show();<br />}</p><p>private int[] tabMenus = { R.menu.menu1, R.menu.menu2, R.menu.menu3 };</p><p>public boolean onPrepareOptionsMenu(Menu menu) {<br />menu.clear();<br />MenuInflater inflater = getMenuInflater();<br />switch (tabHost.getCurrentTab()) {<br />case 0:<br />inflater.inflate(tabMenus[0], menu);<br />break;<br />case 1:<br />inflater.inflate(tabMenus[1], menu);<br />break;<br />case 2:<br />inflater.inflate(tabMenus[2], menu);<br />break;<br />default:<br />break;<br />}</p><p>return super.onCreateOptionsMenu(menu);<br />}</p><p>}

 

LayOut檔案,main.xml:

<?xml version="1.0" encoding="utf-8"?><br /><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:orientation="vertical" android:layout_width="fill_parent"<br />android:layout_height="fill_parent"><br /><LinearLayout android:id="@+id/tab1" android:layout_width="fill_parent"<br />android:layout_height="fill_parent" androidrientation="vertical"><br /></LinearLayout></p><p><LinearLayout android:id="@+id/tab2" android:layout_width="fill_parent"<br />android:layout_height="fill_parent" androidrientation="vertical"><br /></LinearLayout></p><p><LinearLayout android:id="@+id/tab3" android:layout_width="fill_parent"<br />android:layout_height="fill_parent" androidrientation="vertical"><br /></LinearLayout></p><p></FrameLayout>

 

Menu檔案,menu1.xml:

<?xml version="1.0" encoding="utf-8"?><br /><menu xmlns:android="http://schemas.android.com/apk/res/android"><br /><item android:id="@+id/item01" android:title="Tab1 M1"></item><br /><item android:id="@+id/item02" android:title="Tab1 M2"></item><br /><item android:id="@+id/item03" android:title="Tab1 M3"></item><br /></menu><br />

Menu檔案,menu2.xml:

<?xml version="1.0" encoding="utf-8"?><br /><menu xmlns:android="http://schemas.android.com/apk/res/android"><br /><item android:id="@+id/item04" android:title="Tab2 M1"></item><br /><item android:id="@+id/item05" android:title="Tab2 M2"></item><br /><item android:id="@+id/item06" android:title="Tab2 M3"></item><br /></menu><br />

Menu檔案,menu3.xml:

<?xml version="1.0" encoding="utf-8"?><br /><menu<br /> xmlns:android="http://schemas.android.com/apk/res/android"><br /> <item android:id="@+id/item07" android:title="Tab3 M1"></item><br /><item android:id="@+id/item08" android:title="Tab3 M2"></item><br /><item android:id="@+id/item09" android:title="Tab3 M3"></item><br /></menu><br />

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.