如果标签验证失败,则禁用标签导航到操作栏

时间:2015-07-29 08:26:46

标签: android tabs

我正在运行一个带有3个标签的应用,这些标签同时支持用于标签导航的滑动和操作栏。我设置了验证检查,以便在选择选项卡2时,如果未满足某些要求,则返回选项卡1。 它适用于滑动(如果从tab1滑动到tab2,它会显示错误消息并返回到选项卡1)但是使用操作栏,如果为tab2按下操作栏按钮,则会显示错误消息并显示tab1的视图但是操作栏按钮保留在选项卡2上。

我曾尝试过以下脚本,但没有将活动标签按钮更改回第一个标签的运气。这尤其是一个问题,因为每当选择新选项卡时,数据都应该保存到sqlite。

 public void onTabSelected(Tab tab, FragmentTransaction ft) {

    check = GlobalApp.data().value;

    if(tab.getTag() == "Product")
    {
        if(check == "Select Client")
        {

            actionBar.setSelectedNavigationItem(0);
            viewPager.setCurrentItem(0);
            alert.showAlertDialog(Invoice2.this,
                    "Error",
                    "Client name not selected", true);


        }
        else
        {
            viewPager.setCurrentItem(tab.getPosition());
        }
    }
    else if ((tab.getTag() == "Confirm"))
    {
        viewPager.setCurrentItem(tab.getPosition());
    }

1 个答案:

答案 0 :(得分:0)

首先将标签绑定到ViewPager

ActionBar.TabListener tabListener = new ActionBar.TabListener() {
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            viewPager.setCurrentItem(tab.getPosition());
            //Do the criteria check here; AFTER setting current item.
        }

然后Viewpager到标签:

viewPager.setOnPageChangeListener(
        new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                getActionBar().setSelectedNavigationItem(position);
                //Do the criteria check here; AFTER setting current item.
            }
        });

之后,您可以在评论行后检查您的条件。无论您更改选项卡或页面,您的选项卡和页面都应同步更改。有关详细信息,请查看此Android Developers training page