2013-01-07 175 views
0

我在ActionBar标签的onclick事件有问题。 我想将ActionBar-Tab逻辑“外包”到一个类中,这样我就可以在所有活动中重用ActionBar-Tabs-导航。Android ActionBar标签onclick问题

这里是外包 “动作条-Tab键” 逻辑:

public class TabActivity extends Activity implements TabListener 

{

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_tab); 

    // Set up the ActionBar to show tabs: 
    final ActionBar actionBar = getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    // Add Tabs: 
    actionBar.addTab(actionBar.newTab().setText("Dashboard").setTabListener(this),0,true); 
    actionBar.addTab(actionBar.newTab().setText("Search").setTabListener(this),1,false); 
    actionBar.addTab(actionBar.newTab().setText("Map").setTabListener(this),2,false); 
} 

@Override 
public void onTabSelected(Tab arg0, FragmentTransaction arg1) 
{ 
    switch(arg0.getPosition()) 
    { 
     case 0: 
      Intent dashboard = new Intent(this,DashBoardActivity.class); 
      startActivity(dashboard); 
     break; 

     case 1: 
      Intent suche = new Intent(this,SucheActivity.class); 
      startActivity(suche); 
     break; 

     case 2: 
      // Start Intent 
     break; 

     case 3: 
      // Start Intent 
     break; 

     case 4: 
     // Start Intent 
     break; 
    } 
} 

@Override 
public void onTabReselected(Tab arg0, FragmentTransaction arg1) { 

} 

@Override 
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { 

} 

}

,这里是延伸的TabActivity类DashBoardActivity:

public class DashBoardActivity extends TabActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_dash_board); 
} 

}

DashBoardActivity也是我的应用程序的启动器活动。

所以,我的问题。 当应用程序启动时,ActionBar导航按预期成功显示。 我看到(通过Log.i),当应用程序启动时,ActionBar的onTabSelected() 被调用(不点击它)。

正如您所看到的,我想根据点击的 标签启动不同的活动。

问题: 应用程序启动 - onTabSelected在启动时自动调用 - 然后 活动“DashBoardActivity.class”开始。 (但当前活动是DashBoardActivity !?!)

启动的Activity扩展了TabActivity,但是没有显示ActionBar-Tabs 。

有没有解决方案?

回答

2

改变这一行:

actionBar.addTab(actionBar.newTab().setText("Dashboard").setTabListener(this),0,true); 

到:

actionBar.addTab(actionBar.newTab().setText("Dashboard").setTabListener(this),0,false); 

我从Android文档得到了什么:

公共抽象无效addTab(ActionBar.Tab选项卡,INT位置,boolean setSelected)

  • setSelected - 如果添加的选项卡应该变为选定选项卡,则为True。
+0

thanks dude !!这是有用的! – Andres