将类对象转换为Android中的EditText?

时间:2014-02-09 02:28:11

标签: java android android-layout android-gui

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以检查值。

想法?

2 个答案:

答案 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

}

由于EditTextTextView的子类,因此您需要先检查EditTextEditText将测试为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();
            // ...
        }
    }
}