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
}
}
}
In the above code I'm trying to iterate through gui elements in a layout and validate their contents. I'm struggling at the commented parts.
Ie getting access to the EditText's text value..
I can't figure out how to cast the c object to a EditText to check the values.
Ideas?
Try using the logic below
View v = layout.getChildAt(i);
if (v instanceof EditText) {
EditText et = (EditText) v;
//Do stuff
} else if (v instanceof TextView) {
//Do other stuff
}
Since EditText
is a subclass of TextView
, you need to check for EditText
first. An EditText
will test positive as an instance of TextView
.
Most of the views that use text extend from TextView. This should be sufficient if all you are doing is validating text.
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();
// ...
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.