无法通过服务器响应在Toast上的错误消息上显示消息

时间:2018-07-04 09:40:15

标签: java android

我是android编程的新手,我已经开发了一个应用程序,其中我尝试使用用户凭据登录,因为它无法显示服务器响应中的错误消息,但在Logcat中却可以看到该消息。显示错误的其他任何方式

@Override
                public void success(JsonObject jsonObject, Response response) {
                    Log.d("Login", jsonObject.toString());
                    dialog.dismiss();

                    JsonObject jsonObject1 = jsonObject.getAsJsonObject();
                    String status = jsonObject1.get("status").getAsString();
                    statuss = Boolean.parseBoolean(status);
                    if (status.equalsIgnoreCase("true")) {
                        String otp_status = jsonObject1.get("otpstatus").getAsString();

                        if (otp_status.equalsIgnoreCase("true")) {

                            JsonObject jsonObject2 = jsonObject1.get("data").getAsJsonObject();

                            String userid = jsonObject2.get("userid").getAsString();
                            String email = jsonObject2.get("email").getAsString();
                            String phone = jsonObject2.get("phone").getAsString();


                            getActivity().runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    getActivity().finish();
                                    Intent i = new Intent(getContext(), MainActivity.class);
                                    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                    startActivity(i);


                                }
                            });

                        } else {

                        }
                    } else if (status.equalsIgnoreCase("false")){
                        Toast.makeText(getContext(), "" + jsonObject1.get("message").getAsString(), Toast.LENGTH_SHORT).show();
                    }
                }

2 个答案:

答案 0 :(得分:0)

Toast也应显示在UI线程中。另外,请向我们展示如何在日志中显示错误,并在此处放置日志。

答案 1 :(得分:0)

runOnUiThread()中显示吐司,这是您将boolean的值映射到string的另一件事,即不正确的方式,请尝试这种方式

 getActivity().runOnUiThread(new Runnable() {
  @Override
  public void run() {
     if (status) {
    //will execute if status is true
    }else{
    //will execute if status is false
    Toast.makeText(getContext(), "Hello" + jsonObject1.get("message").toString(), Toast.LENGTH_SHORT).show();
    }
});

希望它将对您有帮助!