当前位置: 首页 > 知识库问答 >
问题:

如何在Android上管理starActivityForResult?

曾新立
2023-03-14

在我的活动中,我调用startActivityForResult主活动的第二个活动。在我的第二个活动中,有一些方法可以完成此活动(可能没有结果),但是,其中只有一个方法返回结果。

例如,在主活动中,我调用第二个活动。在本次活动中,我将检查手机的一些功能,例如它是否有摄像头。如果没有,我将关闭此活动。另外,在准备MediaRecorder或MediaPlayer的过程中,如果出现问题,我将关闭此活动。

如果它的设备有一个摄像头,录制完成,然后录制视频后,如果用户点击完成按钮,然后我会将结果(录制视频的地址)发送回主活动。

如何检查主要活动的结果?

共有2个答案

上官飞
2023-03-14

在主要活动中,您应该有以下内容:

public static final int REQUEST_CODE = 1;
Button button = (Button) findViewById(R.id.your_button);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // actions that will happen when the button is pressed:

        Intent intent = new Intent(this, SecondActivity.class);
        startActivityForResult(intent, REQUEST_CODE);
    }
});

在第二个活动中,您应该从单击的RecyclerView中传递列表项的类似结果的位置,如下所示:

ExampleClickAdapter clickAdapter = new ExampleClickAdapter(yourObjects);
clickAdapter.setOnEntryClickListener(new ExampleClickAdapter.OnEntryClickListener() {
    @Override
    public void onEntryClick(View view, int position) {
        Intent intent = new Intent();
        intent.putExtra("pos", position);
        setResult(Activity.RESULT_OK, intent);
        finish();
    }
});
recyclerView.setAdapter(clickAdapter);

在主要活动中,您应该有一个获取结果的方法,这是您的方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_CODE) {

        if (resultCode == Activity.RESULT_OK) {
            int result = data.getIntExtra("pos");
            // do something with the result

        } else if (resultCode == Activity.RESULT_CANCELED) {
            // some stuff that will happen if there's no result
        }
    }
}
谷梁宏恺
2023-03-14

一个好的结果的例子,在秒活动可以是:

setResult(Activity.RESULT_OK, getIntent());
finish();

通过这种方式,您可以从SecondActivity中“回复”任务已成功,并且意图可以携带您的信息。

然后,在您的FirstActivity

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode==YOUR_REQUEST_CODE && Activity.RESULT_OK == resultCode) {
        // Stuff went fine
    }
}
 类似资料:
  • 在我的活动中,我通过调用主活动中的第二个活动。在我的第二个活动中,有一些方法完成这个活动(可能没有结果),然而,只有其中一个返回一个结果。 如果它的设备有一个摄像头并且录制完成了,那么在录制完视频之后,如果用户点击done按钮,那么我会将结果(录制视频的地址)发送回主活动。 如何检查主活动的结果?

  • 我本地是windows环境 线上是linux 两边php版本不一样 一个7.2 一个7.3 本地用的phpstudy 我用composer require 安装了一个包 然后composer.json更新了 提交到服务器去 请问这个时候我在服务器是执行composer.update还是 composer install 呢?网上说不要update 能否有大佬给我说明白下。这个compser.jso

  • 本文向大家介绍如何在Ubuntu 16.04上安装和管理Nginx,包括了如何在Ubuntu 16.04上安装和管理Nginx的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将学习如何在Ubuntu 16.04上安装Nginx以及如何从防火墙允许Nginx。此外,我们还将学习如何控制Nginx。 Nginx是一种流行的Web服务器,其中大多数网站都托管在Nginx上的真实世界中,在那里,它

  • 我正试图处决詹金斯 我创建的pod使用: 它根据图像创建一个podhttps://hub.docker.com/r/trion/jenkins-docker-client 我使用以下方法创建部署: 包含,我已将其配置为: 要访问Jenkins容器,我使用以下方式公开IP: 要返回我使用的Jenkins和Docker映像的IP,请执行以下操作: 其中返回: 为了测试我打开URL在位置: http:/

  • 问题内容: 如何实现android 警报管理器? 问题答案: 从服务设置警报: 如果要设置在电话启动时重复发出警报: 向添加权限和服务: 并创建一个新类:

  • spring security有两个角色(ROLE_USER,ROLE_ADMIN)。现在,我想实现管理面板。我已经做了访问面板url的用户只有ROLE_ADMIN。但我想让额外的安全。当使用ROLE_ADMIN的用户第一次打开管理面板页面时,他必须输入管理面板密码。所以,我的问题是实现这个特性的好方法是什么?