Android Как изменить значки вкладок на вкладке нажмите - PullRequest
0 голосов
/ 17 марта 2012

Android:

Я новичок на Android Я хочу изменить значки вкладок на вкладке нажмите. Я следовал инструкциям, которые могут помочь вам изменить значки вкладок с помощью XML-файла selecter, например

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

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

мой код следующий

Мой файл настроек нарисованных значков выглядит так же, как и имена

becel_setting.xml в папке для рисования

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

и хост-класс моей вкладки выглядит следующим образом

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 Ответ

1 голос
/ 18 марта 2012

вам необходимо предоставить уникальное строковое значение для каждого вашего newTabSpec ("") .например tab1 , tab2 , tab3 и tab4 в следующем примере:

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);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...