Как проверить, какая вкладка открыта в Android tabview

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

http://www.debugrelease.com/2013/06/24/android-listview-tutorial-with-images-and-text/

Вот как я настроил вкладки.

        TabHost tabHost = getTabHost();

        //Tab for Students
        TabSpec studentSpec = tabHost.newTabSpec("Students");
        //set the tile and icon
        studentSpec.setIndicator("Students", getResources().getDrawable(R.drawable.icon_students));
        Intent songsIntent = new Intent(this, StudentsTab.class);
        studentSpec.setContent(songsIntent);

        //Tab for Support
        TabSpec supportSpec = tabHost.newTabSpec("Support");
        //set the tile and icon
        supportSpec.setIndicator("Support", getResources().getDrawable(R.drawable.icon_support));
        Intent videosIntent = new Intent(this, SupportTab.class);
        supportSpec.setContent(videosIntent);

        //tabHost.addTab(homeSpec);
        tabHost.addTab(studentSpec);
        tabHost.addTab(supportSpec);

    }

Итак, у меня есть два метода в классе Model.java из учебника, каждый из которых запускает соответствующие значки и текст. Мне нужно, чтобы они вызывались на определенной вкладке.

Спасибо!


person hannahharkness    schedule 02.08.2013    source источник
comment
tabhost теперь устарел в Android. поэтому я бы рекомендовал не использовать это.   -  person Armaan Stranger    schedule 02.08.2013


Ответы (2)


Как отметил armaan Stranger, вкладки устарели, и вы должны использовать вкладки панели действий. Существует хороший пример того, как создавать вкладки смахивания в android.developer. .

Если вы все еще хотите использовать устаревшее (не следует), тогда вам нужно реализовать OnTabChangeListener, тогда вы увидите, какая вкладка вызывается в public void onTabChanged(String tabId).

person Warpzit    schedule 02.08.2013

Вы можете использовать getCurrentTab (), который возвращает индекс начала табуляции с 0.

person Pranav    schedule 24.01.2014