我在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 。
有没有解决方案?
thanks dude !!这是有用的! – Andres