Я пытаюсь сохранить индекс текущей выбранной вкладки в onSaveInstanceState, чтобы я мог ее восстановить. Однако getCurrentTab apparantely возвращает мне String, который я использовал в etTabHost(). NewTabSpec, который я нахожу немного странным, так как в документации говорится, что он возвращает int и setCurrentTab также принимает int. Кто-нибудь знает, как я могу получить индекс моей выбранной в данный момент вкладки, чтобы восстановить ее?Получить индекс выбранной вкладки в tabHost
ответ
Вы находитесь на правильном пути, используйте setOnTabChangedListener
, чтобы получить выбранную вкладку.
public class MainActivity extends TabActivity {
static TabHost mytabs;
mytabs = getTabHost();
mytabs.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String arg0) {
Log.i("***Selected Tab", "Im currently in tab with index::" + mytabs.getCurrentTab());
}
});
...
...
...
В настоящее время у меня нет доступа к моему ноутбуку с кодом, поэтому мне придется попробовать это завтра, но почему бы не повлиять, использовал ли getCurrentTab в событии onTabChanged или в моем onSaveInstanceState? И спасибо за ваш текущий ответ. – Jack
хороший он помогает мне на моей работе gr8 ответить – Ramz
Используйте tabHost.getCurrentTab(), чтобы получить Tab ...
tabHost= getTabHost();
tabHost.addTab(tab0); // TabSpec tab0=tabHost.newTabSpec(...
tabHost.addTab(tab1); // TabSpec tab1=tabHost.newTabSpec
int current = tabHost.getTabHost() ;
Вы уверены, что вы вызываете TabHost.getCurrentTab()? Он возвращает int. Возможно, вы потеряли это значение с помощью getCurrentTabTag()? –
Я уверен, вот почему я нахожу это настолько странным. – Jack
Какую версию для Android вы используете? –