关于非activity启动activity怎么返回数据

我现在做一个二维码扫描功能,这个功能是在一个AlertDialog里的一个button点击启动,而这个AlertDialog是在一个adapter里,所以无法调用startActivityForResult();这个方法。求大神指导 我应该在AlertDialog里怎么把二维码扫描功能写好。点击启动二维码功能必须在AlertDialog里。

谢谢各位大神了!!!

Activity与AlertDialog值传递

1、在Adapter中也是可以调用startActivityForResult()方法的,在构造方法中传入一个context,context调用startActivityForResult()方法,然后在context的Activity中执行onActivityResult()方法

你可以自定义一个接口,然后回调,就能拿到数据了。

这种实现方法太多了,比如静态,activity的对话框模式,文件存储等等

在adapter里不能调用startActivityForResult()呀 我这个adapter是两个activity共用的

只能调用context.starActivity()

![图片说明](https://img-ask.csdn.net/upload/201601/19/1453168234_871830.png)图片说明

图片说明

现在的情况是 我执行startActivityForResult()后,还没返回结果就执行了String verifydCode = PreferenceUtil.getString("verifydCode"); System.out.println("verifydCode======"+verifydCode); 这两名代码
我要先返回结果再执行下面两名

可以用广播,上面也说了很多实现方法。
你说是两个activity共用这个dialog,其实也可以通过 activity instanceof Aactivity 这样的做法来给requestcode不同的值,以此来判断是哪个activity跳转过去的