android - 将数据发送回 Android 中的主 Activity

标签 android android-intent

我有两个 Activity :主要 Activity 和子 Activity 。
当我在主 Activity 中按下按钮时,将启动子 Activity 。

现在我想将一些数据发送回主屏幕。我使用了 Bundle 类,但它不起作用。它会引发一些运行时异常。

有什么解决办法吗?

最佳答案

有几种方法可以实现您想要的,具体取决于具体情况。

最常见的场景(听起来就是这样)是子 Activity 用于获取用户输入 - 例如从列表中选择联系人或在对话框中输入数据。在这种情况下,您应该使用 startActivityForResult启动您的子 Activity 。

这提供了一个管道,用于使用 setResult 将数据发送回主 Activity . setResult 方法接受一个 int 结果值和一个 Intent,该 Intent 被传回调用的 Activity。

Intent resultIntent = new Intent();
// TODO Add extras or a data URI to this intent as appropriate.
resultIntent.putExtra("some_key", "String data"); 
setResult(Activity.RESULT_OK, resultIntent);
finish();

在调用Activity中访问返回的数据覆盖onActivityResult。 requestCode对应startActivityForResult调用中传入的整数,resultCode和data Intent是从子Activity返回的。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch(requestCode) {
    case (MY_CHILD_ACTIVITY) : {
      if (resultCode == Activity.RESULT_OK) {
        // TODO Extract the data returned from the child Activity.
        String returnValue = data.getStringExtra("some_key");
      }
      break;
    } 
  }
}

关于android - 将数据发送回 Android 中的主 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/920306/

相关文章:

android - 如何更改 fragment 的大小?

android - 启动服务会抛出 IllegalAccessException

android - 一个 onActivityResult 中的两个扫描事件

android - 如何检查我的设备是否能够正确呈现表情符号图像?

Android删除查询数据库

android - fromCallable 中的 RXjava2 方法没有被执行

android - 选择通知时取消Android中的动态通知

java - Android:应用程序关闭时从后台推送动态通知

android - 如何更改 ListView 中的文本颜色

android - 是否可以在 android Room Query 中使用 StringFormat 或 Constant Variable