【问题标题】:How to Implement onBackPressed for Android Fragments(Tabs Activity)如何为Android Fragments(Tabs Activity)实现onBackPressed
【发布时间】:2019-02-01 13:58:40
【问题描述】:

我正在开发一个包含 Tabs Activity 的 Android 应用程序。我的Tabs 活动包含四个tabs(Fragments--[1][2][3][4])。我想要的是当我按下后退按钮时,它必须重定向到上一个选项卡,而不是第一个选项卡。喜欢

[4] -> [3]
[3] -> [2]
[2] -> [1]
[1] -> Alert to logout from the App

请帮帮我。我必须在TabsActivity 课堂上写什么。

【问题讨论】:

  • 您可以通过 2 种方式进行操作。答案中提到了第一个。第二个是使用instanceof 方法,如下所示 if (mFragment instanceof mFragmentClass) { // 执行你的逻辑 }

标签: java android android-fragments android-tabs


【解决方案1】:

假设

你的四个片段被 ViewPager 加热了。

逻辑

您可以将代码写入

 @Override
    void onBackPressed()
    {
    if(viewPager.getCurrentItem==3)
    {
    viewPager.setCurrentItem(2)
    }
    else if{

    }
   }

同样的道理

【讨论】:

    【解决方案2】:

    使用逻辑而不是硬编码页码。 以下解决方案适用于 Viewpager 中的每个项目数 2,3,... n。

    @Override
    public void onBackPressed() {
        if (viewPager.getCurrentItem() != 0) {
            viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
        } else super.onBackPressed();
    }
    

    如果您使用的是TabHost,那么您可以使用this solution.

    【讨论】:

      【解决方案3】:

      在您附加的活动onBackPressed() 中,您必须执行如下操作,

      @Override
      void onBackPressed()
      {
         if(viewPager.getCurrentItem==3){
            viewPager.setCurrentItem(2)
         }
         else if{
           //do your stuff here
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多