2012-11-19 22 views
0

如果手動觸發具有意圖的事件,則支持操作欄可正常工作。但是如果我把它留給tabhost來調用它,那麼從getSupportActionbar()返回的操作欄是空的。當從tabhost調用活動時,Android getSupportActionbar()爲空

我在另一個問題上聽到了Stack引用的這個引用,但沒有人提供並回答。 (顯然它只發生在Android 3及以上版本)。有沒有人有任何想法?

我tabhost:

public class NavTab extends TabActivity { 

    TabHost tabHost; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tab); 

     Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     // Initialize a TabSpec for each tab and add it to the TabHost 
     intent = new Intent().setClass(this, SummaryPage.class); 
     spec = tabHost.newTabSpec("Summary"); 
     spec.setIndicator("Account", getResources().getDrawable(R.drawable.tab_icon_summary)); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 

     //Feedback 
     intent = new Intent().setClass(this, FeedbackPage.class); 
     spec = tabHost.newTabSpec("Feedback"); 
     spec.setIndicator("Feedback", getResources().getDrawable(R.drawable.tab_icon_summary)); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 

     //Payment Locations 
     intent = new Intent().setClass(this, PaymentLocationsActivity.class); 
     spec = tabHost.newTabSpec("Payment Locations"); 
     spec.setIndicator("Pay Loc", getResources().getDrawable(R.drawable.tab_icon_summary)); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 

     //Usage Alert 
     intent = new Intent().setClass(this, UsageAlertPage.class); 
     spec = tabHost.newTabSpec("Usage Alerts"); 
     spec.setIndicator("Alerts", getResources().getDrawable(R.drawable.tab_icon_summary)); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(1); 

    } 


} 

我的活動

public class PageWithActionBar extends SherlockActivity implements ActionBar.OnNavigationListener { 

    private static String TAG = "mymeter-Main"; 
    private List<Account> accounts = new LinkedList<Account>(); 
    private LocationAdapter locationAdapter; 

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

     setContentView(R.layout.main); 


     ActionBar actionBar = getSupportActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
     actionBar.setDisplayShowTitleEnabled(false); 

     accounts.add(new Account("123456789", "4-15 Rose Rd", "Auckland 1021")); 
     accounts.add(new Account("0987654321", "49 Ronaki Rd", "Auckland 1043")); 
     locationAdapter = new LocationAdapter(this, accounts); 
     actionBar.setListNavigationCallbacks(locationAdapter, this); 


    } 
} 

回答

2

你TabActivity需要延續SherlockActivity,看看標籤上的

+0

嗯,現在它不會顯示在所有... – Baconbeastnz

+0

我可以用這個東西福爾摩斯,當我已經有一個福爾摩斯行動起來吧?因爲我想在頂部有一個Actionbar,那麼在它下面的標籤 – Baconbeastnz

+0

是的,我喜歡的那些例子是來自ActionBarSherlock項目的樣本,顯示瞭如何使用標籤。有一件事,我想你會遇到頂部的ActionBar和下面的標籤是在大屏幕或平板電腦上的橫向模式下,Tabs可以摺疊到ActionBar,以便佔用較少的垂直空間。 – antew

相關問題