2012-03-16 143 views
0

Android:Android如何更改選項卡上的標籤圖標點擊

我是新來的android我想更改選項卡上的標籤圖標點擊。我按照可能的指南,指導如何通過selecter XML文件更改標籤的圖標,如

http://developer.android.com/resources/tutorials/views/hello-tabwidget.html http://www.androidhive.info/2011/08/android-tab-layout-tutorial/

,但在我的事業,爲什麼所有這些不工作,它改變選定未選定之和未選定到只選擇第一個選項卡圖標但對於所有其他地方是在我的代碼問題不能正常工作,請幫助我PLZ PLZ PLZ

我的代碼如下

我繪製圖標設置文件與名稱遵循

繪製文件夾

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- When selected, --> 
    <item android:drawable="@drawable/menu_promenera_selected" 
      android:state_selected="true" 
      android:state_pressed="false" /> 

    <!-- When not selected, --> 
    <item android:drawable="@drawable/menu_promenera" 
     /> 

    <!-- When selected, --> 
    <item android:drawable="@drawable/menu_varaframsteg_selected" 
      android:state_selected="true" 
      android:state_pressed="false" /> 
    <!-- When not selected, --> 
    <item android:drawable="@drawable/menu_varaframsteg" 
     /> 

    <!-- When selected, --> 
    <item android:drawable="@drawable/menu_minapromenader_selected" 
      android:state_selected="true" 
      android:state_pressed="false" /> 
    <!-- When not selected,--> 
    <item android:drawable="@drawable/menu_minapromenader" 
     /> 

    <!-- When selected, --> 
    <item android:drawable="@drawable/menu_information_selected" 
      android:state_selected="true" 
      android:state_pressed="false" /> 
    <!-- When not selected, --> 
    <item android:drawable="@drawable/menu_information" 
     /> 

</selector> 

下個

becel_setting.xml和我接頭主機的主機類是遵循

public class BECEL extends TabActivity{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try{ 
      setMenuTabs(); 
     }catch(Exception ex){ 
      String message = ex.getMessage(); 
     } 
    } 

    private void setMenuTabs() { 
     Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 

     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     /*******************************************/ 

     intent = new Intent(this, BecelFacebookConnection.class); 

     spec = tabHost.newTabSpec("").setIndicator("", 
     res.getDrawable(R.drawable.becel_setting)).setContent(intent); /**** xml file name becel_setting ******/ 
     tabHost.addTab(spec);   



     intent = new Intent(this, OurProgress.class); 
     Drawable mySelector = getResources().getDrawable(R.drawable.menu_varaframsteg); 
     spec = tabHost.newTabSpec("").setIndicator("",mySelector).setContent(intent); 
     tabHost.addTab(spec); 



     intent = new Intent(this, MyWalks.class); 

     spec = tabHost.newTabSpec("").setIndicator("", 
     res.getDrawable(R.drawable.menu_minapromenader)).setContent(intent); 
     tabHost.addTab(spec); 



     intent = new Intent(this, WalkInformations.class); 

     spec = tabHost.newTabSpec("").setIndicator("", 
     res.getDrawable(R.drawable.menu_information)).setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(0); 

    } 
} 

請幫我在哪裏,我的代碼是問題

回答

1

您需要提供每個字段的唯一字符串值爲newTabSpec(「」)。例如TAB1TAB2TAB3TAB4下面的例子:

public class BECEL extends TabActivity{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try{ 
      setMenuTabs(); 
     }catch(Exception ex){ 
      String message = ex.getMessage(); 
     } 
    } 

    private void setMenuTabs() { 
     Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 

     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     /*******************************************/ 

     intent = new Intent(this, BecelFacebookConnection.class); 

     spec = tabHost.newTabSpec("tab1").setIndicator("tab1", 
     res.getDrawable(R.drawable.becel_setting)).setContent(intent); /**** xml file name becel_setting ******/ 
     tabHost.addTab(spec);   



     intent = new Intent(this, OurProgress.class); 
     Drawable mySelector = getResources().getDrawable(R.drawable.menu_varaframsteg); 
     spec = tabHost.newTabSpec("tab2").setIndicator("tab2",mySelector).setContent(intent); 
     tabHost.addTab(spec); 



     intent = new Intent(this, MyWalks.class); 

     spec = tabHost.newTabSpec("tab3").setIndicator("tab3", 
     res.getDrawable(R.drawable.menu_minapromenader)).setContent(intent); 
     tabHost.addTab(spec); 



     intent = new Intent(this, WalkInformations.class); 

     spec = tabHost.newTabSpec("tab4").setIndicator("tab4", 
     res.getDrawable(R.drawable.menu_information)).setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(0); 

    } 
} 
+0

(感謝waqas但它仍然沒有工作同樣的問題之前eache newTabSpec獨特namw) – ALI 2012-03-18 09:49:06

+0

或者是嘗試在'setIndicator'中也添加了名字。看到我更新的答案 – waqaslam 2012-03-18 12:09:24

+0

仍然無法通過添加唯一值newTebspec和setIndicator。我感覺很好的問題。如果您有任何教程其中超過兩個到三個選項卡diffrenet圖標更改點擊 – ALI 2012-03-18 15:28:12

相關問題