0

我创建了具有两个选项卡和两个活动的 TabActivity。一个是登录选项卡,另一个是欢迎选项卡。

除非成功登录,否则用户不应进入欢迎选项卡。如果他尝试选择欢迎选项卡,他会抛出登录选项卡。我使用 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);
     }

在 onResume 上,我重复相同的代码。

4

1 回答 1

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
                }
        }
    });
    ...
}
于 2012-07-26T10:33:38.710 回答