Android接口回調實例

導言:
回調是基本知識,這裏只是記錄,舉例實例1和實例2
實例1步驟:
1:創建回調接口---------Callback

interface Callback {
    void setData(String result);
}

2:只調用不處理,但是參數都是實體值

public void test(Callback  callback,String result) {
        //result值是實際值
       callback.setData(result);
    }

3:implements Callback接口並處理

@Override
public void setData(String result) {
       //這裏是具體處理
}

實例2步驟:
1:創建回調接口---------Callback

public interface Callback {
    void success(String result);
    void fail();
}

2:只調用不處理,但是參數都是實體值

public static void test(final Callback callback, Map<String, String> map, String url) {
        OkHttpUtils
                .post()
                .url(url)
                .params(map)
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onResponse(String response, int id) {
                        callback.success(response);
                    }
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        callback.fail();
                    }
                });
    }

3:implements Callback接口並處理,調用B並處理---------C類

                            B.test(new Callback() {
                                @Override
                                public void success(String result) {
                                    //成功時處理result
                                    Gson gson = new Gson();
                                    Bean mBean = gson.fromJson(result, Bean.class);
                                    ......
                                }
                                @Override
                                public void fail() {
                                    //失敗時處理
                                    ToastUtil.INSTANCE.sametoast(this, "請求失敗!", Toast.LENGTH_SHORT);
                                }
                            }, map, UrlContainer.TEST_URL);
                            

實例3步驟:
1:創建回調接口---------MainFragmentInterface

interface MainFragmentInterface {
        void setMainActivityBanner(int carouselTime, List<String> images);
    }

2:只調用不處理,但是參數都是實體值

((MainFragmentInterface) getActivity()).setMainActivityBanner(carouselTime, arrayList);

3:implements MainFragmentInterface 接口實現並處理

 @Override
    public void setMainActivityBanner(int carouselTime, List<String> images) {
     .........
    }

這就是android 回調的DEMO,僅供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章