Java 没有toast,JSON响应不起作用为什么?
我尝试了MYSQL、PHP JSON和VOlley请求来登录用户,但是当我不进行烤面包时,最终的响应是用户没有登录,而是当我使用烤面包时,用户登录了?为什么会这样Java 没有toast,JSON响应不起作用为什么?,java,android,json,android-volley,Java,Android,Json,Android Volley,我尝试了MYSQL、PHP JSON和VOlley请求来登录用户,但是当我不进行烤面包时,最终的响应是用户没有登录,而是当我使用烤面包时,用户登录了?为什么会这样 StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_LOGIN, new Response.Listener<String>() {
StringRequest stringRequest = new StringRequest(Request.Method.POST,
URL_LOGIN,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
/////////////////////THIS TOAST I AM TALKING ABOUT
Toast.makeText(getApplicationContext(), jsonObject+"", Toast.LENGTH_LONG).show();
if (!jsonObject.getBoolean("error")) {
startActivity(new Intent(LoginActivity.this, MainActivity.class);
}
if(jsonObject.getBoolean("error")){
if(jsonObject.getString("message").equals("ERROR")){
startActivity(new Intent(LoginActivity.this, Verify.class);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("email", username);
params.put("password", password);
return params;
}
};
stringRequest.setShouldCache(false);
RequestHandler.getInstance(this).addToRequestQueue(stringRequest);
StringRequest StringRequest=新的StringRequest(Request.Method.POST,
URL\u登录,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject JSONObject=新JSONObject(响应);
/////////////////////这是我说的吐司
Toast.makeText(getApplicationContext(),jsonObject+“”,Toast.LENGTH_LONG.show();
如果(!jsonObject.getBoolean(“错误”)){
startActivity(新意图(LoginActivity.this、MainActivity.class);
}
if(jsonObject.getBoolean(“错误”)){
if(jsonObject.getString(“消息”).equals(“错误”)){
startActivity(新意图(LoginActivity.this、Verify.class);
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数put(“电子邮件”,用户名);
参数put(“密码”,密码);
返回参数;
}
};
stringRequest.setShouldCache(false);
RequestHandler.getInstance(this).addToRequestQueue(stringRequest);
我认为toast会创建一个延迟时间,这样您就有足够的时间进行初始化。我建议在代码的下一部分使用布尔方法,并使用“if”语句检查是否正确返回。或者使用顺序调用方法Way class.method1().method2()。以这种方式,method2在method1返回结果之前不会执行。我也遇到了同样的问题,您能在此场景中详细说明一下吗