我只是有一个AsyncTask,使用侦听器与主活动进行通信。响应到达的位置,第一个Toast将显示正确的值。问题是,在中,尝试捕捉,我可以恢复值。所以如果或开关不再起作用了。
@Override
public void OnAsyncTaskComplete(String response) {
Toast.makeText(getContext(),((ActivityLogin) getActivity()).choiceButton+" result: "+response, Toast.LENGTH_LONG).show();
try {
JSONObject obj = new JSONObject(response);
String objservice = obj.getString("service");
String objstatuCode = obj.getString("status-code");
String objdescription = obj.getString("status-description");
JSONObject result = obj.getJSONObject("result");
if(!objstatuCode.equals("200") || objstatuCode.equals(null)){
Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
return;
} else {
Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
return;
}
} catch (JSONException e){
e.printStackTrace();
}
}

发布于 2018-05-02 12:15:02
我猜你得到了JSONException。
为什么?
Thrown to indicate a problem with the JSON API来自的问题
String objstatuCode = obj.getString("status-code");
JSONObject result = obj.getJSONObject("result");你的JSON VALUE (KEY=status-code)是int.你应该纠正这一点。
一定是
int objstatuCode = obj.getInt("status-code");
String result = obj.getString("result");然后
if(objstatuCode!=200){
Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
return;
} else {
Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
return;
}https://stackoverflow.com/questions/50134097
复制相似问题