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 overrideonActivityResult()
中返回的数据。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 overrideonActivityResult()
中返回的数据。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(我,第一个活动请求代码);