public void changeCurrency(RelativeLayout layout) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
Class c = v.getClass();
if (c == EditText.class) {
// validate EditClass
} else if (c == TextView.class) {
//validate RadioButton
}
}
}
在上面的代码中,我试图遍历布局中的gui元素并验证其内容。我在评论的部分挣扎。
即。访问EditText的文本值..
我无法弄清楚如何将c对象强制转换为EditText以检查值。
想法?
答案 0 :(得分:4)
尝试使用以下逻辑
View v = layout.getChildAt(i);
if (v instanceof EditText) {
EditText et = (EditText) v;
//Do stuff
} else if (v instanceof TextView) {
//Do other stuff
}
由于EditText
是TextView
的子类,因此您需要先检查EditText
。 EditText
将测试为TextView
的实例。
答案 1 :(得分:1)
大多数使用文本的视图都是从TextView扩展而来的。如果您所做的只是验证文本,这应该足够了。
public void changeCurrency(RelativeLayout layout) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
if (v instanceof TextView) {
TextView t = (TextView) v;
String text = t.getText().toString();
// ...
}
}
}