Android 如何将数据发送回上一页

Android 如何将数据发送回上一页,android,file-upload,Android,File Upload,我正在制作一个聊天应用程序,其中我提供了将文件上传到服务器的选项,问题是我想将数据发送到上一页。 以上是我点击上传新活动开始时的第一个活动 现在,当我点击“点击上传”按钮时,图像被上传,我的第二个活动结束。我想将上传图像的路径和图像名称一起发送到“发送”按钮旁边的“上一个活动”文本框中,因此我应该如何操作。 我无法再次调用该活动,因为它是聊天成员列表中的选择性聊天屏幕,所以我刚刚完成第二个活动,通过该活动,我的上一个活动被放在前面 请帮助我在这种情况下,您应该使用startActivityF

我正在制作一个聊天应用程序,其中我提供了将文件上传到服务器的选项,问题是我想将数据发送到上一页。

以上是我点击上传新活动开始时的第一个活动

现在,当我点击“点击上传”按钮时,图像被上传,我的第二个活动结束。我想将上传图像的路径和图像名称一起发送到“发送”按钮旁边的“上一个活动”文本框中,因此我应该如何操作。 我无法再次调用该活动,因为它是聊天成员列表中的选择性聊天屏幕,所以我刚刚完成第二个活动,通过该活动,我的上一个活动被放在前面


请帮助我

在这种情况下,您应该使用
startActivityForResult()
启动您的孩子(第一个)
活动

Intent resultIntent = new Intent();
resultIntent.putExtra("IMAGE_PATH",path);
setResult(Activity.RESULT_OK, resultIntent);
finish();
这提供了使用
setResult()
将数据发送回主活动的管道。
setResult()

Intent resultIntent = new Intent();
resultIntent.putExtra("IMAGE_PATH",path);
setResult(Activity.RESULT_OK, resultIntent);
finish();
要访问调用Activity override
onActivityResult()
中返回的数据。
requestCode
对应于在
startActivityForResult()
调用中传入的整数,而
resultCode
和数据意图则从子(第一个)活动返回

@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 path of image uploaded returned from intent
      }
      break;
    } 
  }
}

在这种情况下,您应该使用
startActivityForResult()
启动您的孩子(第一个)
活动

Intent resultIntent = new Intent();
resultIntent.putExtra("IMAGE_PATH",path);
setResult(Activity.RESULT_OK, resultIntent);
finish();
这提供了使用
setResult()
将数据发送回主活动的管道。
setResult()

Intent resultIntent = new Intent();
resultIntent.putExtra("IMAGE_PATH",path);
setResult(Activity.RESULT_OK, resultIntent);
finish();
要访问调用Activity override
onActivityResult()
中返回的数据。
requestCode
对应于在
startActivityForResult()
调用中传入的整数,而
resultCode
和数据意图则从子(第一个)活动返回

@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 path of image uploaded returned from intent
      }
      break;
    } 
  }
}

您只需使用
startActivityForResult()
而不是
startActivity()
开始第二个活动,就可以实现这一目的,然后当您要完成第二个活动时,在意图中添加所需的任何数据,然后您将找到调用的activityresult
方法。有关更多详细信息,请查看此示例

您只需通过使用
startActivityForResult()
而不是
startActivity()启动第二个活动,即可实现此目的
然后当您要完成第二个活动时,在意图中添加您想要的任何数据,然后您将找到调用ActivityResult的方法
。有关更多详细信息,请查看此示例

实现此目的的方法不止一种

第一个也是最方便的方法是在第一个活动中使用
startActivityForResult()
方法。当您完成
secondActivity
时,将uri路径作为键值对放入
intent
中。在第一个活动中,重写ActivityResult()上受保护的void
方法。并获取你在意向书中输入的数据

第二种方法与通常启动活动的方法相同,比如使用
startActivity(您的第二个活动)
并覆盖
secondActivity
的finish方法,将uri路径作为额外路径放入您的意图中,当您完成此活动时,通过覆盖
onResume()获取第一个活动中的数据
方法

有关更多信息,请参见此链接

还有这个


希望这能有所帮助。

实现这一点的方法不止一种

第一个也是最方便的方法是在第一个活动中使用
startActivityForResult()
方法。当您完成
secondActivity
时,将uri路径作为键值对放入
intent
中。在第一个活动中,重写ActivityResult()上受保护的void
方法。并获取你在意向书中输入的数据

第二种方法与通常启动活动的方法相同,比如使用
startActivity(您的第二个活动)
并覆盖
secondActivity
的finish方法,将uri路径作为额外路径放入您的意图中,当您完成此活动时,通过覆盖
onResume()获取第一个活动中的数据
方法

有关更多信息,请参见此链接

还有这个


希望对您有所帮助。

您可以从第一个活动中使用
startActivityForResult
,在第二个活动完成方法中,您可以将uri路径作为额外参数传递给intent。看到这个,您可以在第一个活动中使用
startActivityForResult
,在第二个活动完成方法中,您可以将uri路径作为额外参数传递给intent。看到这个了吗?我的孩子活动是关键字?我将其代码写成upload.setOnClickListener(new OnClickListener(){@Override public void onClick(View arg0){Intent I=new Intent(Messaging.this,MainActivity.class);//messageText.setText(“uploads/”;startActivityForResult(I,1);//TODO自动生成的方法存根})“我的孩子”活动只不过是第一个活动请求代码和替换startActivityForResult(我,第一个活动请求代码);我的孩子活动是关键字?我将其代码写成upload.setOnClickListener(new OnClickListener(){@Override public void onClick(View arg0){Intent I=new Intent(Messaging.this,MainActivity.class);//messageText.setText(“uploads/”;startActivityForResult(I,1);//TODO自动生成的方法存根})“我的孩子”活动只不过是第一个活动请求代码和替换startActivityForResult(我,第一个活动请求代码);