android - TabHost setCurrentTab 只调用一次 Tab 中 Activity 的 oncreate 方法

标签 android tabs

我正在按照这里的示例进行操作:

http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

一切正常。第一次单击每个选项卡时,将调用绑定(bind)到该特定选项卡的 Activity 的 oncreate 方法。但是,选项卡的后续选择不会调用此 oncreate 方法。

当每个选项卡被选中时,我需要能够在绑定(bind)到每个选项卡的 Activity 上执行 oncreate(或其他方法)。我知道我可以使用 setOnTabChangedListener,但我不确定如何访问绑定(bind)到选项卡的 Activity,以便调用 oncreate(或其他)方法。

最佳答案

这是一个效率问题...这就是为什么您的 onCreate 方法没有被调用两次或更多次的原因。通过 OnTabChangedListenerTabActivity 访问 Activity 的更简单方法是:

public class YourTabActivity extends TabActivity{
    public void onCreate(Bundle InSavedInstanceState) {
        super.onCreate(InSavedInstanceState);
        final TabHost tabHost = getTabHost();

        // blablabla

        tabHost.setOnTabChangedListener(new OnTabChangeListener() {
            public void onTabChanged(String tabId) {
                if( tabId.equals("the_id_of_your_tab") ){
                    NameOfThatActivity.self.theMethodYouWantToCall();
                }
            }
        });
    }
}

然后,在你的 child Activity 中,你有类似的东西:

public class NameOfThatActivity extends Activity{

    public static NameOfThatActivity self;

    // blah blah blah
    public onCreate(Bundle b){
        super.onCreate(b);
        self = this;
    }

    public void theMethodYouWantToCall(){
        // do what ever you want here
    }
}

这不是美,但效果很好。

关于android - TabHost setCurrentTab 只调用一次 Tab 中 Activity 的 oncreate 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710222/

相关文章:

android - 前台服务卡住用户界面

Bootstrap 选项卡中的表单不工作/提交

css - Zurb Foundation 标签在造型后损坏

css - WP Bakery 选项卡动画覆盖

java - onOptionsItemSelected Hook 调用了错误的 fragment

java - 读取 unicode *.txt 文件?

Android 相对布局底部边距无法正常工作

android - 哪个可以代替 capturePicture 功能

android - 在 Google Play 中更新现有的 Android 应用程序

iOS : UI - Design login page and Tab view - Tab not coming after Login