TabHost.setCurrentTab(index)第一次工作

时间:2012-07-26 10:22:35

标签: android

我创建了TabActivity,它有两个带有两个活动的标签。 一个是登录标签,另一个是欢迎标签。

除非登录成功,否则

用户不应该进入欢迎选项卡。如果他尝试选择欢迎选项卡,则会将其投掷到登录tab.i使用tabHost.setcurrenttab(index)。

但是当我点击直接欢迎标签时,它第一次正常工作。当我再次快速单击选项卡时,它会打开欢迎选项卡。

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.product_list);
            SharedPreferences mPreference = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
            username = mPreference.getBoolean("valid", false);
            Toast.makeText(this, "In Create", Toast.LENGTH_SHORT).show();
           //login sucessful            
           tabActivity.switchTab(0);
     }

on onResume,我重复相同的代码。

1 个答案:

答案 0 :(得分:0)

在TabActivity中尝试此操作。这是为了防止用户在没有登录的情况下切换标签。(我现在没时间检查它,如果代码有任何问题,请告诉我):

SharedPreferences mPreference;
....onCreate(){

    ...

    mPreference = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    tabHost.setOnTabChangedListener(new OnTabChangeListener() {

    @Override
    public void onTabChanged(String arg0) {

                username = mPreference.getBoolean("valid", false);
                if(user is logged in){
                     tabHost.setcurrenttab(0);//welcome page
                }
                else{
                     tabHost.setcurrenttab(1);//login page
                }
        }
    });
    ...
}