0

こんにちは、これは単純で、私を逃しているだけだと確信しています:-)

フィールド配列で提供される値をチェックできるように、単純なヘルパー クラスを作成しています。フィールドは、正しい EditText ウィジェットであると言っています。私がしたいことは、EditText に入力された入力値にアクセスできるようにすることです。フィールド、助けてください。

Field[] fields = clazz.getFields();

    for (Field field : fields) {
        if (field.isAnnotationPresent(Required.class)) {
            Log.d(TestClass.class.getName(), field.toString());
        }
    }

前もって感謝します

QUESTION の完全なコードに更新

package com.mobiqube.annotations;

import java.lang.reflect.Field;

import android.util.Log;
import android.widget.EditText;

public class EditTextValidator {

public EditTextValidator() {
}

public Boolean validate(Class clazz) throws IllegalArgumentException, IllegalAccessException{
    Boolean isValid = true;
    Field[] fields = clazz.getFields();

    for (Field field : fields) {
        if (field.isAnnotationPresent(Required.class)) {
            Log.d(EditTextValidator.class.getName(), field.toString());
            if(field instanceof EditText){      
                EditText editText = (EditText)field ;
                String txt=editText.getText().toString();
                Log.d(EditTextValidator.class.getName(), txt);
            }

        }
    }

    return isValid;
}

public String getMessage(){
    String returnStr = "";
    return returnStr;
}

}

現在発生しているエラー

if(field instanceof EditText){ //

および EditText editText = (EditText)field ;

4

4 に答える 4

1

これを試して:

EditText[] fields = clazz.getFields();

for (EditText field : fields) {
   Log.e("result",field.getText().toString());
}
于 2013-10-04T09:03:00.127 に答える
0

こんにちは、以下のコードを使用できます

if(field instanceof EditText){      
    EditText editText = (EditText)field ;
    String txt=editText.getText().toString();
}
于 2013-10-04T09:03:01.187 に答える
0
AppCompatActivity activity=(AppCompatActivity)
Field id = R.id.class.getDeclaredField(field.getName());
EditText et= (EditText)activity.findViewById(id.getInt(id));

//or
AppCompatActivity activity=(AppCompatActivity)
EditText et= (EditText)activity.findViewById(id);
于 2020-01-20T20:37:51.607 に答える