1. 程式人生 > >解決Tabhost.setCurrentTab()不起作用的方法

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

方法一 修改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);