我需要的除非我的平板电脑连接到服务器我无法更改标签。我有一个标签主机,它们都运行在同一个java文件中。我想我需要做的就是在文件中进行某种测试,除非布尔值为true,否则不要让代码更改选项卡。但是我不知道如何做到这一点?如果您需要查看我的任何代码,请将其留在评论框中。感谢你的帮助 !停止更改标签
停止更改标签
回答
嗯,我想你可以尝试禁用/调用启用在标签上点击:
myTabHost.getTabWidget().setClickable(isConnectedToServer);
但我不知道这是很好的UX,怎么样让你的用户更改标签,但如果内容能将无法到达在标签的主视图内显示一条消息“服务器无法访问,请检查您的互联网连接”或类似的东西。
UPDATE: 试试这个(为每个标签页):
myTabHost.getTabWidget().getChildTabViewAt(0).setEnabled(false);
myTabHost.getTabWidget().getChildTabViewAt(1).setEnabled(false);
myTabHost.getTabWidget().getChildTabViewAt(2).setEnabled(false);
另一个更新:
public class MyActivity extends Activity {
private TabWidget mTabWidget = null;
protected void onCreate(Bundle savedInstanceState) {
...
mTabWidget = myTabHost.getTabWidget();
...
}
protected void refreshTabs(boolean isConnected) {
mTabWidget.getChildTabViewAt(0).setEnabled(isConnected);
mTabWidget.getChildTabViewAt(1).setEnabled(isConnected);
mTabWidget.getChildTabViewAt(2).setEnabled(isConnected);
}
现在,您可以拨打refreshTabs
,只要你想在你的代码,使他们能/禁用。
所以我做的是'th.getTabWidget().setClickable(connected);'和th由'final TabHost th =(TabHost)findViewById(R.id.tabhost)'定义;'但是它不起作用,当它没有连接,它仍然会改变标签,我做错了什么? –
看到我上面的编辑 – marmor
它的作品谢谢!但是我在onCreate部分有这个,所以当我将布尔值更改为true时,它不会更改为true,因为它没有意识到它,但是如果我将其移出创建它,则无法识别TabHost。我应该把它放在哪里才能使它工作? –
- 1. 标签栏项停止更改ViewController
- 2. jquery停止更改网址的标签
- 3. Semantic-ui:单击标签时停止URL更改
- 4. 从更改终端标题停止IPython
- 5. JQuery标签停止工作
- 6. 聚合物,防止标签更改
- 7. 更改标签
- 8. 标签更改
- 9. 更改标签
- 10. 更改标签
- 11. 更改标签
- 12. 更改VIewControllers停止动画
- 13. 更改标签云
- 14. ggbiplot - 更改标签
- 15. iPhone更改标签
- 16. jquery更改标签
- 17. 关于标签鼠标停止动画的jQuery标签云
- 18. 将鼠标悬停在标签上时更改标签的前部颜色
- 19. 停止用户更改标签,直到应用程序加载完全
- 20. 更改标签标题
- 21. 更改标签标题
- 22. 更改Eclipse标签图标
- 23. 更改facebook标签图标
- 24. 更改鼠标悬停WPF标签的前景色
- 25. 从修改文本中停止导轨形式标签
- 26. 其他标签更改时如何更改标签?
- 27. 属性更改标签颜色标签
- 28. 使用Prototype更改标签的标签?
- 29. Android Seekbar停止更新方向更改
- 30. 跳转到标签(Ctrl-])停止工作
我不明白你的问题,你问如何知道你的应用程序是否连接到你的服务器? – marmor
我的问题是。有没有办法让你点击一个标签。除非我设置了一些东西,否则它将不起作用,所以它会再次变为活动。那有意义吗? –