2015-09-14 55 views
0

我想设置第二个标签加载第一。所以我正在尝试这样。如何设置第二个标签是第一个inTabHost

在我的MainActivity中,我扩展了FragmentActivity

我初始化全局的Tabhost。

private TabHost mTabHost; 

我称之为OnCreate

private void initialiseTabHost() { 
     mTabHost = (TabHost) findViewById(android.R.id.tabhost); 
     mTabHost.setup(); 

     // TODO Put here your Tabs str_near_by str_best_offer 
     MainActivity.AddTab(
       this, 
       this.mTabHost, 
       this.mTabHost.newTabSpec("Tab 1").setIndicator(
         "Tab 1")); 
     MainActivity.AddTab(this, this.mTabHost, 
       this.mTabHost.newTabSpec("Tab 2").setIndicator("Tab 2")); 
     MainActivity.AddTab(
       this, 
       this.mTabHost, 
       this.mTabHost.newTabSpec("Tab 3").setIndicator(
         "Tab 3")); 
     mTabHost.setCurrentTab(1); // Here I am setting the 2nd tab load first 
     mTabHost.setOnTabChangedListener(this); 
    } 

下面的方法,但我不能设置第二个选项卡第一加载。

而且我也无法创建选项菜单。

我在我的MainActivity中添加下面的代码。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main, menu); 
     return true; 
    } 

但是菜单也没有被创建。请帮我解决这些问题。

+0

什么是您的AddTab()方法做? –

+0

我在该页面中添加3个选项卡。 –

+0

请参考我现在所做的答案。设置完所有指标后,添加选项卡等 –

回答

1

而不是使用静态方法,尝试在MainActivity的onCreate()中实现它们。

public void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity_main); 
    mTabHost = (TabHost) findViewById(android.R.id.tabhost); 
    mTabHost.setup(); 

    // Tab 1 
    TabSpec tab1Spec = tabHost.newTabSpec("Tab 1"); 
    // setting Title and Icon for the Tab 
    tab1.setIndicator("Tab 1",getResources() 
         .getDrawable(R.drawable.icons_tab_one)); 
    Intent tab1Intent = new Intent(this, MainActivity.class); 
    tab1Spec.setContent(tab1Intent); 

    // Do the same for Tab 1,2 
    ... 

    // Add tabs 
    mTabHost.addTab(tab1Spec); 
    mTabHost.addTab(tab2Spec); 
    mTabHost.addTab(tab3Spec); 


    mTabHost.setCurrentTab(1); // Now change the default tab 
    mTabHost.setOnTabChangedListener(this); 
} 

对于onCreateOptionsMenu(),你需要做这样的事情PROGRAMICALLY。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    myActionItem = menu.add(Menu.NONE, AI_ID_blah, 
      AI_ID_blah, "My Action Item").setIcon(
      R.drawable.ic_my_action_item); 
    myActionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM 
      | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

    // add more items 
    ... 

    return true; 
} 

如果你想使用XML,你可以做以下

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

,并在菜单XML(菜单/ activity_main.xml中)

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/menu_settings" android:orderInCategory="100" 
     android:showAsAction="never" android:title="@string/menu_settings"/> 
    <item android:id="@+id/item1" android:title="Option1"></item> 
    <item android:id="@+id/item2" android:title="Option2"></item> 
    <item android:id="@+id/item3" android:title="Option3"></item> 
    <item android:id="@+id/item4" android:title="Option4"></item> 
    <item android:id="@+id/item5" android:title="Option5"></item> 
    <item android:id="@+id/item6" android:title="Option6"></item> 
</menu> 
相关问题