Vog*_*tsu 2 testing android tabcontrol onclick android-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.
}
}
});
Run Code Online (Sandbox Code Playgroud)
当我检查字段是否正确时,我有一个测试"if or else".
如果一切都完成了,好的!
如果没有,则无法关注下一个标签.必须保持标签"数据"才能完成填充.
如何阻止标签中的更改?一切都正确吗?
编辑以显示测试帮助
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;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我想要做的这件事是在另一堂课.它不在tabhost类中.所以我必须使用getParent(),对吗?
我需要做的测试是检查字段"tab1 data",如果它们已填满.
如果没有什么是完整的,不应该切换到"tab3结果"
在每个选项卡上使用OnTouchListener,您可以轻松地阻止更改选项卡.
for (int i=0; i<tabWidget.getTabCount(); i++) {
tabWidget.getChildAt(i).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_UP) {
String currentTabTag = (String) tabHost.getCurrentTabTag();
String clickedTabTag = (String) view.getTag();
testFields();
if (!fieldAreCorrect) {
return true; // does not allow tab change
}
}
return false; // allows tab change
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3121 次 |
| 最近记录: |