因為Project的需要,這幾天研究了一下要如何在Android APP中使用Tab元件,原本照著Android Developers(http://developer.android.com/resources/tutorials/views/hello-tabwidget.html)裡面的步驟依樣畫葫蘆,以為簡簡單單就可以搞定,沒想到踢到了鐵板@@...在一番的研究之後發現原來是我產生Activity的方式不對;我原本天真的以為直接在src folder裡面加上我需要的.java檔案就可以運作,結果發現build project都沒有問題,但是一旦deploy到simulator上怎樣都跑不出畫面,原來正確的作法是必須如下
1.在你自己的package上按右鍵選擇New->Class
2.在出現的對話框的Name欄位填入要產生Activity的Class名字,然後按下Superclass這個欄位的"Browse..."這個按鈕後會跳出另一個對話框,選擇Activity-android.app後按Finish按鈕完成。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textview = new TextView(this);
textview.setText("This is the Settings tab");
setContentView(textview);
}
完成了新增class的動作後再來就是處理AndroidManifest.xml,步驟如下:
1.在Project Explorer中點選並打開AndroidManifest.xml;
2.選擇Application這個tab
3.選擇Application nodes
4.點選"Add..."這個按鈕
5.在跳出的對話框中選擇Activity
6.選OK
7.此時會出現Attributes for Activity的表單,按下Name這個欄位的"Browse..."來展開對話框
8.在對話框會有剛剛新增的Settings這個Activity選項,選擇他
9.按OK後存檔
10.最後開啟AndroidManifest.xml確認有Settings這個Activity加入,也就是在檔案裡會有一行
重複如上的步驟在產生所有需要Tab的Activity,最後就是在你繼承TabActivity這個物件的onCreate這個method加入產生tab的程式碼如下例:
TabHost tabHost = getTabHost(); // The activity TabHost
tabHost.addTab(tabHost.newTabSpec("settings")
.setIndicator("Settings")
.setContent(new Intent(this, Settings.class)));
tabHost.addTab(tabHost.newTabSpec("panel")
.setIndicator("Panel")
.setContent(new Intent(this, Panel.class)));
tabHost.addTab(tabHost.newTabSpec("devices")
.setIndicator("Devices")
.setContent(new Intent(this, Devices.class)));
tabHost.addTab(tabHost.newTabSpec("captureevents")
.setIndicator("Capture Events")
.setContent(new Intent(this, CaptureEvents.class)));
tabHost.setCurrentTab(0);
最後,把模擬器跑起來就會看到如下 的Tab GUI產生:
其實只要是操作過一次,下次要作就很簡單,但是對剛入門的新手,要注意的小地方真是有點多,所以在此紀錄一下心得,也給有需要的人參考...
No comments:
Post a Comment