legongju.com
我们一直在努力
2025-01-12 18:48 | 星期天

在startactivityforresult中处理返回结果

在Android开发中,startActivityForResult用于启动一个新的Activity,并在该Activity完成后返回结果

  1. 创建一个Intent对象,用于启动新的Activity。
  2. 使用startActivityForResult(intent, requestCode)方法启动新的Activity。requestCode是一个整数,用于标识请求。
  3. 在新的Activity中处理完成后,使用setResult(resultCode, intent)方法设置结果。resultCode是一个整数,表示结果状态;intent是一个包含返回数据的Intent对象。
  4. 在原始Activity中重写onActivityResult(requestCode, resultCode, data)方法,以处理返回的结果。

下面是一个简单的示例:

假设我们有两个Activity:MainActivitySecondActivity。在MainActivity中,我们通过点击一个按钮来启动SecondActivity,并等待其返回结果。

MainActivity.java:

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            String result = data.getStringExtra("result");
            Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show();
        }
    }
}

SecondActivity中,我们处理完成后,将结果设置为一个字符串,并返回给MainActivity

SecondActivity.java:

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("result", "Hello from SecondActivity!");
                setResult(RESULT_OK, intent);
                finish();
            }
        });
    }
}

当用户点击SecondActivity中的按钮时,将返回一个字符串结果给MainActivity,并显示一个Toast消息。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/103830.html

相关推荐

  • startactivityforresult的回调机制解析

    startactivityforresult的回调机制解析

    startActivityForResult 是 Android 中用于从一个 Activity 启动另一个 Activity,并在结果返回时获取结果数据的方法。这种回调机制基于 Android 的 Activity 生...

  • startactivityforresult与数据传递的关系

    startactivityforresult与数据传递的关系

    startActivityForResult 是 Android 中用于启动一个新的 Activity,并在该 Activity 结束时返回结果的方法。这种机制允许在两个 Activity 之间进行数据传递。以下...

  • 如何在Android中使用startactivityforresult

    如何在Android中使用startactivityforresult

    在Android中,startActivityForResult()方法用于从一个活动(Activity)启动另一个活动并期望返回结果 创建第二个活动(我们将其称为SecondActivity)并添加所需...

  • startactivityforresult的用途是什么

    startactivityforresult的用途是什么

    startActivityForResult是Android开发中用于启动另一个Activity并期望从该Activity获取返回结果的方法。其主要用途和用法如下:
    主要用途 启动Activity并等...

  • fastboot驱动在固件升级中的应用

    fastboot驱动在固件升级中的应用

    Fastboot驱动在固件升级中扮演着关键角色,它允许用户通过USB连接设备,并在设备处于引导加载程序(Bootloader)模式时,执行一系列底层的系统操作。以下是fastboo...

  • 如何解决fastboot驱动相关的问题

    如何解决fastboot驱动相关的问题

    当遇到Fastboot驱动相关问题时,可以尝试以下方法来解决: 检查驱动是否安装: 在设备管理器中检查Android设备是否显示有黄色感叹号,这通常表示驱动未正确安装或...

  • fastboot驱动与系统分区的关系

    fastboot驱动与系统分区的关系

    Fastboot驱动与系统分区之间存在密切的关系,主要涉及系统分区的读写、擦除和更新等操作。以下是详细介绍:
    Fastboot驱动的作用 系统分区的读写:Fastboot驱...

  • 如何通过fastboot驱动恢复出厂设置

    如何通过fastboot驱动恢复出厂设置

    当您需要通过Fastboot驱动来恢复出厂设置时,实际上您可能指的是在Fastboot模式下进行恢复出厂设置的操作。这通常涉及到使用特定的Fastboot命令来重置手机到出厂...