如何在 Android 中使用按键单击以编程方式切换标签页

2022-09-02 02:30:25

我已经为此挣扎了几天了。我正在尝试在单击按钮时以编程方式切换选项卡。如果我只使用选项卡来更改活动,我的程序可以完美地工作,但是将 onClick 方法与 setCurrentTab 连接会导致错误。这是行不通的方法。这是一个非常基本和直接的功能,但我没有看到太多文档或人们试图通过切换选项卡连接按钮点击的示例。谢谢。

ImageButton next = (ImageButton) findViewById(R.id.ButtonAsk);
 next.setOnClickListener(new View.OnClickListener() 
         {         
  public void onClick(View view)  
             {

                TabHost tabHost =  (TabHost) findViewById(android.R.id.tabhost);
              tabHost.setCurrentTab(2);                
             }
         });

有关错误日志,请参阅编辑历史记录。


答案 1

下面是一个代码示例,您可以将其放在 onClick() 中。正如马克和凯文所描述的那样。

    TabActivity tabs = (TabActivity) getParent();
    tabs.getTabHost().setCurrentTab(2);

我已经多次使用这个代码花絮。希望这能澄清。


答案 2

当前活动中没有 带有 的小部件。因此,返回 null,并且对 的调用将失败。@android:id/tabhostfindViewById()setCurrentTab()

现在,我的猜测是,这是因为您将活动放在选项卡中。如果你把你的标签,你的代码就会工作。您的代码也会更快,占用更少的堆空间,并降低堆栈空间耗尽的风险。Views

如果您希望坚持当前的实现,请尝试调用而不是仅调用 。getParent().findViewById()findViewById()


推荐