導言:
回調是基本知識,這裏只是記錄,舉例實例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,僅供參考