java如何在Android中使用按钮单击以编程方式切换选项卡
我已经为此挣扎了几天了。我试图在点击按钮时以编程方式切换选项卡。如果我只是使用选项卡来更改活动,那么我的程序可以完美地运行,但是将onClick方法与setCurrentTab连接会导致错误。这种方法行不通。这是一个非常基本和简单的功能,但我还没有看到太多的文档或示例,说明人们试图用切换选项卡来连接按钮。谢谢
ImageButton next = (ImageButton) findViewById(R.id.ButtonAsk);
next.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
TabHost tabHost = (TabHost) findViewById(安卓.R.id.tabhost);
tabHost.setCurrentTab(2);
}
});
有关错误日志,请参阅编辑历史记录
# 1 楼答案
2017年答案
这里的其他答案似乎已经过时。Creating Swipe Views with Tabs文档建议将^{} 与^{} 一起使用
下面是代码的一个部分实现
根据上面的代码,以编程方式设置选项卡如下:
Here is another implementation了解查看页面和选项卡布局设置的更多详细信息
# 2 楼答案
这对我有用
更新: 将我的代码插入问题代码中,以提供更多上下文
# 3 楼答案
下面是一个代码示例,可以放在onClick()中。正如马克和凯文所描述的
这个代码我已经用过很多次了。希望这能澄清
# 4 楼答案
当前活动中没有带有
@android:id/tabhost
的小部件。因此,findViewById()
返回null,对setCurrentTab()
的调用失败现在,我猜这是因为你把活动放在了你的标签上。如果你把
Views
放在标签里,你的代码就可以工作了。您的代码也会更快,占用更少的堆空间,并降低堆栈空间不足的风险如果希望继续使用当前的实现,请尝试调用
getParent().findViewById()
,而不是只调用findViewById()