Android 返回随机数,而不是jsonobject中strings.xml中的字符串值
我有一个验证字段的函数,该字段返回JSONObjectAndroid 返回随机数,而不是jsonobject中strings.xml中的字符串值,android,Android,我有一个验证字段的函数,该字段返回JSONObject private JSONObject validateFields(String field){ JSONObject returnData = new JSONObject(); try{ if (field == "description"){ if (expensesDescription.length() < 1){ returnData
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;
}
但问题不是土司显示错误消息,而是显示一个数字“2131427350”。这里有什么问题
顺便说一下,如果我将validateFields函数中的returnMessage更改为
returnData.put("returnMessage","some error lalala");
将显示正确的“some error lala”消息。此处
returnData.put("returnMessage",R.string.expenses_description_validation_length);
您正在为returnMessages键设置一个resources,因此您的toast应该如下所示
int resId = Integer.parseInt(dataValidation.getString("returnMessage"));
Toast.makeText(getActivity(), getActivity().getString(resId), Toast.LENGTH_SHORT).show();
这样,您放入json中的资源id将转换回本地化字符串
R.string。费用\u说明\u验证\u长度
是标识符,而不是字符串。使用Context.getString
获取字符串值。我尝试了您的答案,它显示了一个错误“无法解析方法'getString(java.lang.String)”。但是如果我执行Toast.makeText(getActivity(),getActivity().getString(R.String.expenses\u description\u validation\u length),Toast.length\u SHORT.show();它可以工作。
returnData.put("returnMessage",R.string.expenses_description_validation_length);
int resId = Integer.parseInt(dataValidation.getString("returnMessage"));
Toast.makeText(getActivity(), getActivity().getString(resId), Toast.LENGTH_SHORT).show();