我只有一个 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();
}
}
答案 0 :(得分:1)
我假设你得到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;
}