我正在运行一个带有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());
}
答案 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