2
我用下面的方法來檢查,如果被點擊的標籤:鎖定塊變化 - TabHost
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
int i = tabHost.getCurrentTab();
if (i == 2) {
Log.i("Tab Number", "=" + i);
testFields(); // Verifies that the data fields were filled.
}
}
});
當我檢查是否領域是正確的,我有一個測試,「如果不然」。
如果一切都完成了,OK!
如果不是,則不能跟隨到下一個選項卡。必須保持標籤「數據」完成填充。
如何阻止選項卡中的更改?直到一切正確?
編輯來顯示測試有助於
final TabHost tabHost = (TabHost) getParent().findViewById(
android.R.id.tabhost);
// ONCLICK TABHOST
for (int i = 0; i < tabHost.getTabWidget().getTabCount(); i++) {
tabHost.getChildAt(i).setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_UP) {
String currentTabTag = (String) tabHost
.getCurrentTabTag();
String clickedTabTag = (String) v.getTag();
if ((etCargac.getText().toString().equals(""))
|| (tsoloSelecionadac.equals("Selecione"))) {
return false; // allows tab change
}
return true; // doesnt allow tab change
}
return false;
}
});
}
這個事件,我試圖做的是在另一個類。它不在tabhost的類中。 所以我必須使用getParent(),正確嗎?
我需要做的測試是檢查字段「tab1 data」是否填充。
如果沒有完成不應該切換到「TAB3結果」
我編輯了代碼,看看你做了什麼。再看一下上面。 – Vogatsu 2012-04-17 13:52:16
適合我... – user754730 2012-10-10 12:36:12
工作...但目前以及下一個標籤仍然選擇... :( – mohitum 2016-05-05 12:54:35