117.info
人生若只如初见

在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.117.info/ask/fed98AzsBAQJVAg.html

推荐文章

  • 用startactivityforresult实现多Activity交互

    startActivityForResult 是 Android 中一种常用的 Activity 之间通信方式,它允许你从一个 Activity 启动另一个 Activity,并在第二个 Activity 完成操作后返回结...

  • startactivityforresult与Activity生命周期的关系

    startActivityForResult 是 Android 中用于从一个 Activity 启动另一个 Activity,并在新 Activity 完成后返回结果的方法。这种机制允许您在两个 Activity 之间进...

  • startactivityforresult在不同Android版本中的差异

    startActivityForResult 是一个用于从一个 Activity 启动另一个 Activity,并在操作完成后返回结果的方法 Android 4.0(API 级别 14)及更低版本:
    在这些版...

  • 如何优化startactivityforresult的性能

    startActivityForResult 是 Android 中用于从一个 Activity 启动另一个 Activity,并在结果返回时处理数据的方法。要优化 startActivityForResult 的性能,可以遵...

  • startactivityforresult的回调机制解析

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

  • startactivityforresult与数据传递的关系

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

  • 如何在Android中使用startactivityforresult

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

  • startactivityforresult的用途是什么

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