我需要的除非我的平板電腦連接到服務器我無法更改標籤。我有一個標籤主機,它們都運行在同一個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
我的問題是。有沒有辦法讓你點擊一個標籤。除非我設置了一些東西,否則它將不起作用,所以它會再次變爲活動。那有意義嗎? –