Android接口回调实例

本文详细介绍了Android中的回调机制,通过四个实例展示了如何定义和使用回调接口。从创建接口到具体的实现处理,帮助读者理解回调的基本原理及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导言:
回调是基本知识,这里只是记录,举例实例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) {
     .........
    }

实例4步骤:
数据传递:
Adapter->View/Fragment/Activity
View->Fragment/Activity
Fragment->Activity

1:创建回调接口---------IPhotoCheckBox

public interface IPhotoCheckBox {
		public void checkClick(int position, PhotoInfo info);
}

2:只调用不处理,但是参数都是实体值

IPhotoCheckBox listener;
public void setPhotoSelectListener(IPhotoCheckBox listener) {
		this.listener = listener;
	}
listener.checkClick(position,list.get(position));

3:implements IPhotoCheckBox接口实现并处理

photoAdapter.setPhotoSelectListener(new IPhotoCheckBox() {
			@Override
			public void checkClick(int position, PhotoInfo pinfo) {	
			}
		});

这就是android 回调的DEMO,仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值