2013-01-07 207 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