Wub*_*ang 45 android android-volley
public class getString {
String tag_string_req = "string_raq";
String url = "http://10.0.2.2/eat/locations/index.json";
String result="";
public String get_String() {
StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
result=response;
System.out.println(response);
;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println(volleyError.getMessage());
}
});
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
return result;
}}
Run Code Online (Sandbox Code Playgroud)
我想构建一个getString对象并在其他字段中调用get_String.但似乎很难从onResponse中得到结果.我知道它不能以当前的方式工作.任何人都可以帮我解决这个问题吗?
wbl*_*hko 124
你想使用如下的回调接口:
public void getString(final VolleyCallback callback) {
StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
... // (optionally) some manipulation of the response
callback.onSuccess(response);
}
}...
}}
Run Code Online (Sandbox Code Playgroud)
将回调定义为
public interface VolleyCallback{
void onSuccess(String result);
}
Run Code Online (Sandbox Code Playgroud)
活动内的示例代码:
public void onResume(){
super.onResume();
getString(new VolleyCallback(){
@Override
public void onSuccess(String result){
... //do stuff here
}
});
}
Run Code Online (Sandbox Code Playgroud)
您也可以VolleyCallback更稳健,使用泛型类型,如果你想要做的处理,或添加start(),failed(Exception e),complete(),等方法,做一些更细粒度的状态检查.
请记住,这是一个异步调用,因此当您获得结果(内部success())时,您将不得不更新视图等.
| 归档时间: |
|
| 查看次数: |
43987 次 |
| 最近记录: |