use*_*797 21 java tabs android onclick android-tabhost
我几天来一直在努力解决这个问题.我试图在按钮点击时以编程方式切换标签.如果我只使用选项卡来更改活动,我的程序将完美运行,但使用setCurrentTab连接onClick方法会导致错误.这是不起作用的方法.这是一个非常基本和简单的功能,但我没有看到很多文档或人们试图用切换标签连接按钮的例子.谢谢.
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);
}
});
Run Code Online (Sandbox Code Playgroud)
请参阅错误日志的编辑历史记录.
Sco*_*ggs 26
这是一个可以放在onClick()中的代码示例.正如马克和凯文所描述的那样.
TabActivity tabs = (TabActivity) getParent();
tabs.getTabHost().setCurrentTab(2);
Run Code Online (Sandbox Code Playgroud)
我已经多次使用这段代码.希望这澄清一下.
Com*_*are 17
@android:id/tabhost当前活动中没有小部件.因此,findViewById()返回null,并且您的调用setCurrentTab()失败.
现在,我的猜测是因为你将活动放在标签中.如果你放入Views标签,你的代码就可以了.您的代码也会更快,占用更少的堆空间,并且可以降低堆栈空间不足的风险.
如果您希望坚持使用当前的实现,请尝试调用getParent().findViewById()而不是仅仅调用findViewById().
2017年回答
这里的其他答案似乎已经过时了.在与标签创建刷卡查看文档推荐TabLayout使用ViewPager.
以下是执行此操作的代码的一部分实现.
public class MainActivity extends AppCompatActivity {
private ViewPager mViewPager;
private Button mButton;
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
mViewPager = (ViewPager) findViewById(R.id.fieldspager);
// ...
mButton.setOnClickListener(myButtonClickHandler);
}
View.OnClickListener myButtonClickHandler = new View.OnClickListener() {
@Override
public void onClick(View view) {
mViewPager.setCurrentItem(2, true);
}
};
}
Run Code Online (Sandbox Code Playgroud)
从上面的代码,以编程方式设置选项卡是这样完成的:
mViewPager.setCurrentItem(2, true); // set it to the third tab
Run Code Online (Sandbox Code Playgroud)
这是另一个实现,其中包含有关如何设置视图分页器和选项卡布局的更多详细信息.
这适合我
getActionBar().setSelectedNavigationItem(0);
Run Code Online (Sandbox Code Playgroud)
更新: 将我的代码插入到问题的代码中,为其提供更多上下文...
ImageButton next = (ImageButton) findViewById(R.id.ButtonAsk);
next.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
getActionBar().setSelectedNavigationItem(2);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36854 次 |
| 最近记录: |