2011-08-07 59 views
2

編輯:我想阻止用戶切換標籤,除非我得到我的警報響應保存數據。切換標籤頁時,我有一個onTabChangedlistener來檢查數據更改。android:防止標籤切換,除非保存數據

mTabHost.setOnTabChangedListener(this); 

@Override 
    public void onTabChanged(String tabId) { 
     // TODO Auto-generated method stub 
     if (mTabHost.getCurrentTab()==1 && dataModified){ 
      AlertMessage(this, "Your data was NOT saved! Press Ok to continue, or Cancel to stay on the current screen. "); 
     } 

    }} 

使用onPause也給出了相同的結果..tab切換前,用戶可以響應確定/取消。

我的問題是,當警報顯示該標籤已被切換。我希望用戶響應正確/取消,然後只做必要的(留在選項卡或切換選項卡上)。

我如何獲得用戶響應,然後只允許切換選項卡。

感謝

+0

「我想阻止用戶切換標籤,除非保存數據」 - 然後不要使用製表符。使用其他一些提供更友好UX的用戶界面。 – CommonsWare

+0

是不可能阻止用戶切換標籤...也許通過使用ontouch或ontabchanged的聽衆 – jsp

+0

我在說你的提議的用戶界面是用戶敵對的。擺脫你的標籤。使用別的東西,不會讓用戶瞭解他們應該做的事情,但不能做,因爲一些隨機開發人員不希望他們現在就這樣做。例如,如果您的期望是用戶按順序切換到標籤以編輯某些內容,請使用「ViewFlipper」創建嚮導。 – CommonsWare

回答

0

你將不得不延長TabHost類並覆蓋setCurrentTab方法,那麼你可以添加自己的onBeforeTabchanged()回調。

+0

你能舉個例子嗎? – mohitum