温馨提示×

Android的startactivityforresult怎么使用

小亿
91
2023-08-08 02:41:03
栏目: 编程语言

使用startActivityForResult()方法可以启动一个Activity,并且在该Activity关闭后,可以获取到返回的结果。

以下是使用startActivityForResult()方法的步骤:

  1. 在当前Activity中调用startActivityForResult()方法,传入一个Intent对象和一个请求码(requestCode)。
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
  1. 在被启动的Activity中设置返回结果,并在适当的时候关闭Activity。
Intent returnIntent = new Intent();
returnIntent.putExtra("result", resultData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
  1. 在当前Activity中重写onActivityResult()方法,该方法会在被启动的Activity关闭后被调用,可以在该方法中获取返回的结果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回结果
}
}

注意事项:

  • 请求码(requestCode)是一个整型值,用于标识启动的Activity,可以自定义。

  • setResult()方法用于设置返回结果,第一个参数为结果码(resultCode),一般使用Activity.RESULT_OK表示成功。

  • 可以通过Intent对象的putExtra()方法传递额外的数据,返回结果时可以通过getXXXExtra()方法获取。

  • 如果被启动的Activity意外关闭(如崩溃),则onActivityResult()方法可能不会被调用,需要注意处理这种情况。

0