【问题标题】:android prevent auto start activity on the first tabandroid防止在第一个选项卡上自动启动活动
【发布时间】:2013-05-22 02:53:42
【问题描述】:

我的 android 应用有一个带有 5 个标签的标签主机。 问题是当我在第一个选项卡上使用 setCurrentTab(2).Android 启动活动时,它会在第三个选项卡上启动活动。我发现当我使用 TabHost 类的 addTab 方法时,它也会在第一个选项卡中启动活动。

    if (mCurrentTab == -1) {
        setCurrentTab(0); 
    }

我在 stackoverflow 中阅读了我的线程,例如:https://stackoverflow.com/questions/9978231/android-when-i-put-setcurrenttab-for-tabhost-it-loads-the-first-added-tab-ac

由于我的客户要求,我无法重新排序选项卡。当 TabActivity 启动时,我只想在第三个选项卡中启动活动,我该怎么做?

【问题讨论】:

    标签: android android-tabhost


    【解决方案1】:

    如果您想阻止加载您的片段,那么将您的片段放入 onVisible。使用这个类UserVisibleHintFragment

    它将帮助您防止提前加载。

    【讨论】:

      【解决方案2】:

      addTab 方法之后使用setCurrentTab(2)。最好在 TabActivity 的 onCreate 的最后一行使用它

      【讨论】:

      • 我之前试过了,它不工作,android在第一个标签中启动活动,然后是第三个标签
      • 哦,我误解了你的问题..这是启动第一个标签的自然流程
      • 你为什么需要这个......
      【解决方案3】:

      从我附加的图片中可以看出,当应用程序 android 启动时,它将从第三个选项卡启动活动,并在 android 设备中读取用户的邮件地址,然后将其发布到服务器。之后服务器将返回 user_id,我会将 user_id 保存在应用程序内存中。当用户单击第一个包含 webview 的活动的选项卡时,我将从应用程序内存中获取此 user_id,然后传递给 webview 的 url。 如果第一个选项卡中的活动首先开始,则 user_id 将为空白。

      【讨论】:

        【解决方案4】:

        您的问题并未告诉我们您是如何构建标签的。如果您可以发布一些关于如何构建选项卡的代码,那么我们可能会为您提供更好的帮助。

        下面是使用 TabHost 构建选项卡的简单方法。下面的tabHost.setCurrentTab(2); 工作正常...

        TabHost tabHost = getTabHost();
        
        // Tab for About
        TabSpec aboutspec = tabHost.newTabSpec("About");
        aboutspec.setIndicator("About", getResources().getDrawable(R.drawable.icon_about_tab));
        aboutspec.setContent(new Intent(this, AboutActivity.class));
        
        // Tab for Contacts
        TabSpec contactsspec = tabHost.newTabSpec("Contacts");
        contactsspec.setIndicator("Contacts", getResources().getDrawable(R.drawable.icon_contacts_tab));
        contactsspec.setContent(new Intent(this, ContactsActivity.class));
        
        // Tab for Resources
        TabSpec resourcesspec = tabHost.newTabSpec("Resources");
        resourcesspec.setIndicator("Resources", getResources().getDrawable(R.drawable.icon_resources_tab));
        resourcesspec.setContent(new Intent(this, ResourcesActivity.class));
        
        // Adding all TabSpec to TabHost
        tabHost.addTab(aboutspec);
        tabHost.addTab(contactsspec);
        tabHost.addTab(resourcesspec);
        
        // set the current tab to Resources
        tabHost.setCurrentTab(2);
        

        希望这可以帮助您解决问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多