gpt4 book ai didi

java - OnActivityResult 与 OnClicklistener 的放置

转载 作者:行者123 更新时间:2023-12-01 11:19:32 26 4
gpt4 key购买 nike

我在我的项目中实现了第 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com