我在我的项目中实现了第 3 方相机扫描应用程序
我有一个适配器,可以扩展 View 保持器,这样我就可以拥有自定义布局
在 View 中我有一个按钮
当我创建 View 时,我将 OnclickListener 添加到我想要使其可点击的图像中
我希望这个 OnclickListener 调用相机,但我需要调用 startActivityForResult
以这种方式调用时,我对 onActivityResult 的位置感到困惑。
我当前的尝试是创建一个单独的类(scan_activity)来扩展 Activity ,但我无法让 onclicklistener 启动该类
然后我尝试在 setOnClickListener 中声明它,您可以猜到这也失败了。
我猜对类的调用是前进的方向。我确定它是一个简单的解决方案,但我没有看到它
请帮忙
提前致谢
imgCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, ScanActivity.class);
intent.putExtra(ScanConstants.OPEN_INTENT_PREFERENCE, 1);
((Activity) context).startActivityForResult(intent,99);
}
}
);
和类(class)
imgCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ScanActivity
}
}
);
最佳答案
第一个选项应该有效。您创建一个 Intent
对象,并将 Activity 组件指定为参数。 Android 将为您创建一个 Activity
对象,因此,切勿手动执行此操作。 Android 应该管理 Activity 的生命周期。
通过启动 Activity 获取结果,您可以告诉 Android 当 ScanActivity
关闭时,它应该在您的第一个 Activity 上使用请求代码 99 调用 onActivityResult
回调。
在 Activity 中处理 onActivityResult
:
@Override
public void onActivityResult (int requestCode, int resultCode, Intent data) {
if (requestCode == 99) {
// handle your result here
}
}
关于java - OnActivityResult 与 OnClicklistener 的放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31417148/