2012-03-16 141 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

相关问题