6
我的Android操作欄上嘗試爲3.0,在這裏我指的Android的標籤操作欄
http://www.youtube.com/watch?v=gMu8XhxUBl8
在TabsActivity
的代碼如下:
package com.test.actionbar;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
public class TabsActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabA = bar.newTab().setText("A Tab");
ActionBar.Tab tabB = bar.newTab().setText("B Tab");
ActionBar.Tab tabC = bar.newTab().setText("C Tab");
Fragment fragmentA = new AFragmentTab();
Fragment fragmentB = new BFragmentTab();
Fragment fragmentC = new CFragmentTab();
tabA.setTabListener(new MyTabsListener(fragmentA));
tabB.setTabListener(new MyTabsListener(fragmentB));
tabC.setTabListener(new MyTabsListener(fragmentC));
bar.addTab(tabA);
bar.addTab(tabB);
bar.addTab(tabC);
}
protected class MyTabsListener implements ActionBar.TabListener {
private Fragment fragment;
public MyTabsListener(Fragment fragment) {
this.fragment = fragment;
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
ft.add(R.id.fragment_container, fragment, null);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}
}
瞭然而,在完成本教程後,我意識到在TabsActivity中,在onTabSelected方法中,它需要一個變量,它是container_id,我不太確定,即使在查看API。我試圖刪除線,並在平板電腦上運行它,但它引發了我的runtimeexception。
任何人都可以幫助我嗎?
對不起,我是新來的android編程,如果這個問題聽起來太簡單了。
在此先感謝。
編輯
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
public class ActionBarTabs extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabA = bar.newTab().setText("A Tab");
ActionBar.Tab tabB = bar.newTab().setText("B Tab");
ActionBar.Tab tabC = bar.newTab().setText("C Tab");
bar.addTab(tabA);
bar.addTab(tabB);
bar.addTab(tabC);
}
}
UPDATE
package com.debug.actionbartabs;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
public class TabsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabA = bar.newTab().setText("A Tab");
bar.addTab(tabA);
}
}
@Jonathon何感謝您的回覆。我想在某處宣佈身份證嗎?因爲我不太確定我應該在哪裏做。我已閱讀開發人員指南,但仍無法掌握概念。你介意,如果你能指導我到哪裏我應該添加的東西,我可以讓它工作? –
哦,我現在編輯它只是哎呀。我很確定你把你的分片xml文件中的id。片段可以在這裏閱讀:http://developer.android.com/reference/android/app/Fragment.html但是,它是在<片段android:id =「@ + id/___」>無論你什麼名字你的ID 。它被傳遞給自動生成的R.java,以便在Java代碼中使用它。您是否嘗試過使用XML Views製作Android表單?它應該與此類似。 – rawreth
@Jonathan Ho我以前曾嘗試過使用xml佈局,但是這一次,它不斷引發類似於無法引用類的錯誤,我將其更改爲正確的類,但它會覆蓋我所做的所有事情。 –