我有一個驗證領域的功能,其返回的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