Android 来自字符串的 EditText setError()
Android EditText setError() from string
我知道我必须遗漏一些东西。我收到一个 JSON 对象返回错误。
{
"data": {
"status": "error",
"error": {
"email": ["Email already registered"]
}
}
}
JSON键错误与EditText同名。我需要能够
email.setError("Email already registered");
Class.forName() 不会为它工作....我如何在 Android
中执行此操作
值在 Iterator 键中 = "email"
} else if (data.getString("status").equals("error")) {
Log.d(Constants.LOG, "No Account Found Sending to Register!");
JSONObject errors = data.getJSONObject("error");
for(Iterator<String> iter = errors.keys();iter.hasNext();) {
String key = iter.next();
Object value = errors.get(key);
Log.d(Constants.LOG,value.toString().replace("[","").replace("]","").replace("\"",""));
///Class<?> clasz = Class.forName(key);
}
Toast.makeText(getApplicationContext(), "Error:" + data.getString("error"), Toast.LENGTH_LONG).show();
}
如果您有 java 1.7 或更高版本
,可能的方法是对字段名称使用 switch
大小写
for(Iterator<String> iter = errors.keys();iter.hasNext();) {
String key = iter.next();
Object value = errors.get(key);
Log.d(Constants.LOG,value.toString().replace("[","").replace("]","").replace("\"",""));
switch(key) {
case "email":
email.setError(value.toString());
break;
case "name":
name.setError(value.toString());
break;
}
}
或
如果您不想使用 switch
大小写,您可以使用 Java Reflection API
实现同样的效果。
我知道我必须遗漏一些东西。我收到一个 JSON 对象返回错误。
{
"data": {
"status": "error",
"error": {
"email": ["Email already registered"]
}
}
}
JSON键错误与EditText同名。我需要能够
email.setError("Email already registered");
Class.forName() 不会为它工作....我如何在 Android
中执行此操作值在 Iterator 键中 = "email"
} else if (data.getString("status").equals("error")) {
Log.d(Constants.LOG, "No Account Found Sending to Register!");
JSONObject errors = data.getJSONObject("error");
for(Iterator<String> iter = errors.keys();iter.hasNext();) {
String key = iter.next();
Object value = errors.get(key);
Log.d(Constants.LOG,value.toString().replace("[","").replace("]","").replace("\"",""));
///Class<?> clasz = Class.forName(key);
}
Toast.makeText(getApplicationContext(), "Error:" + data.getString("error"), Toast.LENGTH_LONG).show();
}
如果您有 java 1.7 或更高版本
,可能的方法是对字段名称使用switch
大小写
for(Iterator<String> iter = errors.keys();iter.hasNext();) {
String key = iter.next();
Object value = errors.get(key);
Log.d(Constants.LOG,value.toString().replace("[","").replace("]","").replace("\"",""));
switch(key) {
case "email":
email.setError(value.toString());
break;
case "name":
name.setError(value.toString());
break;
}
}
或
如果您不想使用 switch
大小写,您可以使用 Java Reflection API
实现同样的效果。