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

方法一 修改TabWidget 的 mSelectedTab字段

try
         {
             Class tabWidgetClass = (Class) 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);

你可能感兴趣的:(android)