Android Volley从响应中返回值

时间:2016-12-03 14:02:41

标签: android android-volley

如何从onResponse中获取响应以便我可以返回它?我找到了这个,但我真的不明白如何为我实现它。 How can I return value from function onResponse of Volley?

我希望有一种更新的方法或更容易让我错过的东西 这是我的代码

public Boolean checkIfPersonExists(Context context, final Person aPerson){
        StringRequest postRequest = new StringRequest(Request.Method.POST, USEREXISTS, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("RESPONSE",response.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> params = new HashMap<>();
                params.put("email",aPerson.getEmail());
                params.put("phone",aPerson.getPhone());
                return params;
            }
        };
        Volley.newRequestQueue(context).add(postRequest);
        return null;
    }

1 个答案:

答案 0 :(得分:0)

如上所述,您需要实现接口并获得回调

像这样创建一个新界面

public interface GeneralCallbacks {
void VolleyResponse(String data);
}

在您的活动类

上实施界面
public class YourActivity implements ScoreboardCallback
{
    @Override
    public void VolleyResponse(String data)
    {
      //do stuff with data
    }
}

最后将你的响应功能改为这样的

        @Override
        public void onResponse(String response) {
            ((GeneralCallbacks)context).VolleyResponse(response); // This will make a callback to activity.
            aPerson.SomeFunction(); // This will call person's function
            Log.d("RESPONSE",response.toString());
        }