How to make serverAnswer transmitted outside onResponse?
And it turns out that the data is put into serverAnswer in onResponse, but outside of onResponse the serverAnswer variable is empty.
Suppose if you output Toast with serverAnswer in onResponse, then the required text is displayed, and if, say, output Toast outside onResponse, then emptiness is displayed.
And addUser passes an empty string.
public String addUser(final String username, final String email, final String password, final Context context) { StringRequest request = new StringRequest(Request.Method.POST, REGISTER_URL, new Response.Listener<String>() { @Override public void onResponse(final String response) { try { JSONObject jsonObject = new JSONObject(response); final JSONObject status = jsonObject.getJSONObject("Result"); serverAnswer = status.getString("Server answer"); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { serverAnswer = error.getMessage(); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<>(); params.put(KEY_USERNAME, username); params.put(KEY_EMAIL, email); params.put(KEY_PASSWORD, password); return params; } }; RequestQueue requestQueue = Volley.newRequestQueue(context); requestQueue.add(request); return serverAnswer; }