2013-05-10 3 views
0

я хочу изменить значок, когда нажмите на tabhostизменения на tabhost андроид

ниже исходный код

private void setTabs() { 
    addTab("Home", TabHome.class, R.drawable.home); 
    addTab("Performers", TabPerformers.class, R.drawable.performers); 
    addTab("Tickets", TabTickets.class, R.drawable.tickets); 
    addTab("Info", TabInfo.class, R.drawable.info); 

} 

private void addTab(String labelId, Class<?> c, int drawableId) { 
    tabHost = getTabHost(); 
    Intent intent = new Intent(this, c); 
    TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

    tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false); 
    icon = (ImageView) tabIndicator.findViewById(R.id.icon); 
    icon.setImageResource(drawableId); 
    spec.setIndicator(tabIndicator); 
    spec.setContent(intent); 

    tabHost.addTab(spec); 
} 

я хочу, чтобы изменить значок вкладки, когда пользователь нажимает кнопку вкладки для этого я использовал ниже tabhost событие

tabHost.setOnTabChangedListener(new OnTabChangeListener() { 

     @Override 
     public void onTabChanged(String tabId) { 

      if (tabId.equals("tabHome")) { 

, но не смог успешно

есть также tab_indicater.xml файл но от этого только фон будет меняться не значок

ниже код XML

<?xml version="1.0" encoding="utf-8"?> 

<!-- Non focused states --> 
<item android:drawable="@drawable/tab_unselected" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/> 
<item android:drawable="@drawable/tab_bg_selector" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/> 

<!-- Focused states --> 
<item android:drawable="@drawable/tab_bg_selector" android:state_focused="true" android:state_pressed="false" android:state_selected="false"/> 
<item android:drawable="@drawable/tab_bg_selector" android:state_focused="true" android:state_pressed="false" android:state_selected="true"/> 

<!-- Pressed --> 
<item android:drawable="@drawable/tab_bg_selector" android:state_pressed="true" android:state_selected="true"/> 
<item android:drawable="@drawable/tab_press" android:state_pressed="true"/> 

ниже это снимок экрана

enter image description here

, когда мы нажимаем на любой вкладке, это значок должен быть изменен, как здесь он должен стать оранжевым ..

любого орган может помочь мне ...

ответ

1

Там нет простого способа изменить значок TabSpec. Вы должны поместить свои значки в выделенные элементы селектора.

+0

, но в этом также как можно различить, что этот значок для этой вкладки и что значок для этой вкладки? –

+0

Простые, используйте разные рисунки для разных вкладок :) – iceman

+0

Спасибо iceman :) Я попробую :) –

Смежные вопросы