我有一个验证领域的功能,其返回的JSONObject在strings.xml中返回的随机数,而不是字符串值中的JSONObject
private JSONObject validateFields(String field){
JSONObject returnData = new JSONObject();
try{
if (field == "description"){
if (expensesDescription.length() < 1){
returnData.put("returnCode",0);
returnData.put("returnMessage",R.string.expenses_description_validation_length);
}else{
returnData.put("returnCode",1);
}
}
}catch (JSONException e) {
Log.e(FILE_NAME, "An error has occurred: " + e.toString(), e);
}
return returnData;
}
,你可以看到,我把一个字符串资源的引用为returnMessage 。为以防万一,字符串资源是:
<string name="expenses_description_validation_length">Please enter your expenses\' description.</string>
好了,所以这里是我如何调用该函数
private JSONObject dataValidation = new JSONObject();
dataValidation = validateFields("description");
if (Integer.parseInt(dataValidation.getString("returnCode")) == 0){
Toast.makeText(getActivity(), dataValidation.getString("returnMessage"), Toast.LENGTH_SHORT).show();
}
但问题是显示错误消息的敬酒,而不是,它会显示一个号码“2131427350 ”。这里有什么问题?
通过,如果我改变returnMessage在validateFields功能类似
returnData.put("returnMessage","some error lalala");
正确的“某些错误LALALA”消息的方式将显示。
'R.string.expenses_description_validation_length'是一个标识符,而不是一个字符串。使用'Context.getString'来获取字符串值。 – njzk2 2014-10-07 15:05:13