呼叫回撥方法有返回值的情況
阿新 • • 發佈:2019-02-08
呼叫回撥方法時,有資料返回,程式碼反映:
1,定義一個介面
public interface VolleyCallBack {void onSucc(String response);
}
2, 這是請求資料的
public void sendString(final VolleyCallBack callBack) throws Exception {
String myUrl = "http://api.map.baidu.com/telematics/v3/weather?location=" + URLEncoder.encode("北京", "utf-8") + "&output=json&ak=EC57b8ffc279a3eda12d4486a4f7cf03&qq-pf-to=pcqq.c2c";
StringRequest request = new StringRequest(Request.Method.GET, myUrl, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
callBack.onSucc(s);
}
}, null);
VolleryInstance.getInstance(this).addToRequestQueue(request);
}
3,呼叫請求後就可以拿到你要的資料了。
sendString(new VolleyCallBack() {
@Override
public void onSucc(String response) {
Log.e("callback",response);
}
})
使用例項:
public interface DialogCallBack{
public void onDialogResponse(String response);
}
public interface MainDialogInterface {
public void singleBattle(DialogCallBack callback);
public void internetBattle(DialogCallBack callback);
public void exit();//退出
}
上面是另一端實現的,其中mainDialogInterface是我們自己使用的變數名,
點選按鈕時,呼叫下面的,同時另一端的返回結果在DialogCallBack中返回
mainDialogInterface.internetBattle(new DialogCallBack(){
@override
public void onDialogResponse(String response){
Log.e("callback",response);
//返回處理
}
})
另一端呼叫時,邏輯邏輯,最後使用callback.onDialogResponse(s)這樣就傳入引數,這樣即從另一端獲得返回的結果。
如此,即可實現回撥呼叫,同時又有返回值的情景。