Search code examples
javaandroidandroid-layoutandroid-gui

Cast Class object to EditText in Android?


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.

I.e. 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?


Solution

  • 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.