您好我敢肯定,這是簡單,它只是躲避我:-)轉換領域EDITTEXT
我寫一個簡單的輔助類能夠檢查的字段說在現場陣列提供的值他們是EditText Widgets,這是正確的,我想要做的就是能夠訪問輸入到EditText字段的輸入值,請幫忙?
Field[] fields = clazz.getFields();
for (Field field : fields) {
if (field.isAnnotationPresent(Required.class)) {
Log.d(TestClass.class.getName(), field.toString());
}
}
在此先感謝
UPDATE質疑完整的代碼
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){ //
和 埃德itText editText =(EditText)字段;
您需要的對象是您的clazz類的實例,並且您需要使用field.get(instance)。要獲得該字段表示的類,請使用field.getType() – njzk2
errmm,這樣我就可以在下面的EditText editText =(EditText)field.get(field.getType()); – cghrmauritius
不完全。你需要一個clazz類型的實例。你可以發表更多有關clazz對象的代碼嗎? – njzk2