解决Tabhost.setCurrentTab()不起作用的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jiang_Rong_Tao/article/details/80580507

方法一 修改TabWidget 的 mSelectedTab字段

try
         {
             Class<TabWidget> tabWidgetClass = (Class<TabWidget>) mTabhost.getTabWidget().getClass();
              Field mCurrentTab = tabWidgetClass
                     .getDeclaredField("mSelectedTab");
              mCurrentTab.setAccessible(true);
            mCurrentTab.setInt(tabWidgetClass, -2);
        }
         catch (Exception e)
         {
           e.printStackTrace();
       }

方法二 修改tabhost的mCurrentTab

                try {
                Field idcurrent = mTabhost.getClass()
                        .getDeclaredField("mCurrentTab");
                idcurrent.setAccessible(true);
                idcurrent.setInt(mTabhost, -2);
            } catch (Exception e) {
                e.printStackTrace();
            }

都要在addTab之前采用反射区修改字段的值,mTabhost.setCurrentTab(position);

猜你喜欢

转载自blog.csdn.net/Jiang_Rong_Tao/article/details/80580507