我在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