2013-11-26 516 views
4

这是我的布局代码;方法返回空值

static String userLocation(String url) { 

    RequestQueue queue = Volley.newRequestQueue(context); 
    // String url = "http://www.jobdiagnosis.com/iphone/userlocation.php"; 

    StringRequest dr = new StringRequest(Request.Method.GET, url, 
       new Response.Listener<String>() 
       { 
        @Override 
        public void onResponse(String response) { 
         // response 
         res=response; 
         //edit_location.setText(response); 
         // Toast.makeText(context, response, Toast.LENGTH_LONG).show(); 
        } 
       }, 
       new Response.ErrorListener() 
       { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         // error. 
         Toast.makeText(getApplicationContext(), "error"+error, Toast.LENGTH_LONG).show(); 
         Log.d("error", ""+error); 
        } 
       } 
      ); 
      queue.add(dr); 
      return res; 
} 

当我举杯对同一方法的响应则响应打印精细 ,当我调用方法和打印return语句,然后打印水库空。

任何帮助表示赞赏。先谢谢你。

请给我建议,我们如何可以共享一个或多个活动

而且我的英语不好对不起内响应..

+0

我不知道你的函数'StringRequest',但我的猜测是它是一个异步函数,所以你在返回res之前已经设置了该值。 –

+0

这是一个异乎寻常的任务,请阅读更多。你不想从界面返回值,因为它被解雇为异步 –

+0

代码工作正常,但方法不返回值 –

回答

0

试图声明RES就像响应全局变量。不是返回值。因为你不知道什么时候请求会完成。并使用这个全局变量。

+0

代码工作正常,但方法不返回值 –

+0

当然,它不会返回值,因为当您返回“res”时,您还没有“响应”。收到“响应”以将值返回给App线程后,使用全局变量或类似BroadcastReceiver的东西。 – none

+0

PLz建议我如何解决这个问题 –

1

这是一个异步请求时,凌空处理在后台线程请求并提供在onResponse()

,如果你正在寻找同步响应try this

+0

plz帮助我我无法在活动内共享响应 –