强制用户在特定选项卡上并检测他何时尝试切换选项卡

时间:2014-01-15 03:43:42

标签: android

我正在使用tabhost选项卡。我有4个选项卡,我希望用户只能查看第一个选项卡的内容。如果他点击任何其他选项卡,那么我应该显示msg并返回第一个标签。 我怎样才能做到这一点?

我尝试通过创建onTabChanged侦听器并在此方法中执行此操作

if( th.getCurrentTab()!=0){
    th.getTabWidget().setCurrentTab(0);
    alert("my msg");
    return;
}

但问题是,一旦我返回th.getCurrentTab返回1或2(无论用户点击了什么),它似乎无法正常工作。 任何其他想法或方法来解决这个问题?

由于

2 个答案:

答案 0 :(得分:0)

假设您想让用户坚持使用的标签的ID是固定的并且是第一个,您不需要执行if( th.getCurrentTab()!=0) {检查,只需使用setCurrentTab语句。您不需要检查用户所在的选项卡,因为您知道您希望它们位于第一个选项卡上。并且它不会启动无限循环,因为单击或将当前选项卡设置为同一选项卡不会触发onTabChanged事件。

使用这样的东西应该按预期工作:

public void onTabChanged(final String tabId) {
  th.getTabWidget().setCurrentTab(0);
  alert("my msg");
  return;
}

答案 1 :(得分:0)

我找到了。显然我应该使用th.setCurrentTab(0)而不是th.getTabWidget()。setCurrentTab(0)