1. 程式人生 > >呼叫回撥方法有返回值的情況

呼叫回撥方法有返回值的情況

呼叫回撥方法時,有資料返回,程式碼反映:

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)這樣就傳入引數,這樣即從另一端獲得返回的結果。

如此,即可實現回撥呼叫,同時又有返回值的情景。