当前位置: 首页 > 知识库问答 >
问题:

如何将字符串从一个活动发送到另一个活动?

司空高义
2023-03-14

我在活动2中有一个字符串

String message = String.format(
"Current Location \n Longitude: %1$s \n Latitude: %2$s", lat, lng); 

我想在activity1的文本字段中插入此字符串。我该怎么做?

共有3个答案

许嘉福
2023-03-14

当我们谈论在活动之间传递数据时,可能有两种情况。

假设有两个活动A和B,有一个字符串X。

现在让我们看看这两个案例

  1. --------

案例1:
字符串X位于A中,您希望在活动B中获取它。

这很简单。

在活动A中。

1)创建意图
2)放额外的值
3)启动活动

Intent i = new Intent(A.this, B.class);
i.putExtra("Your_KEY",X);
startActivity(i)

在活动B中

onCreate()方法中,使用存储X时使用的键(您的_键)检索字符串X。

Intent i = getIntent();
String s = i.getStringExtra("Your_KEY");

案例2:
如果你是Android开发新手,那么这个案例有点棘手,因为你在活动A中,你移动到活动B,收集字符串,返回到活动A并检索收集的字符串或数据。让我们看看如何应对这种情况。

在活动A
1)创建意图
2)使用请求代码启动活动。

Intent i = new Intent(A.this, B.class);
startActivityForResult(i,your_req_code);

在活动B中
1)将字符串X放入意图
2)设置结果
3)完成活动

Intent returnIntent = new Intent();
returnIntent .putString("KEY",X);
setResult(resCode,returnIntent);   // for the first argument, you could set Activity.RESULT_OK or your custom rescode too
finish();

再次在活动A
1)重写onActivityResult方法

onActivityResult(int req_code, int res_code, Intent data)
{
       if(req_code==your_req_code)
       {
          String X = data.getStringExtra("KEY")
       }
}

您可能想知道在onActivityResult(int reqCode,resCode,Intent data)中的reqCode,resCode是什么

当您必须确定从哪个活动获得结果时,ReqCode非常有用。

假设你有两个按钮,一个按钮启动摄像头(你点击一张照片,并在你的活动中得到该图像的位图),另一个按钮启动谷歌地图(你得到你所在位置的当前坐标)。因此,为了区分这两个活动的结果,可以使用不同的请求代码启动CameraActivty和MapActivity。

resCode:当你必须区分结果是如何返回到请求活动时很有用。

例如:你开始相机活动。当相机活动开始时,您可以拍摄照片,或者只需返回请求活动,而无需按下返回按钮拍摄照片。所以在这两种情况下,你的相机活动发送不同的重新编码活动的结果。RESULT_OK和活动。分别RESULT_CANCEL。

相关链接

阅读更多关于获取结果

翟展
2023-03-14

您可以通过一个Intent将数据从一个动作发送到另一个动作

Intent sendStuff = new Intent(this, TargetActivity.class);
sendStuff.putExtra(key, stringvalue);
startActivity(sendStuff);

然后,您可以在第二个活动中通过获取意图并提取额外的字符串来检索此信息。在onCreate()方法中执行此操作。

Intent startingIntent = getIntent();
String whatYouSent = startingIntent.getStringExtra(key, value);

然后你所要做的就是在TextView上调用setText并使用该字符串

阚吕恭
2023-03-14

可以使用意图,即在活动之间发送的消息。在一个意图中,你可以放置所有类型的数据,字符串,int等等。

在您的情况下,在active ity2中,在转到active ity1之前,您将以这种方式存储String消息:

Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("message", message);
startActivity(intent);

activity1中的onCreate()中,您可以通过检索捆绑包(包含调用活动发送的所有消息)并调用getString()来获取字符串消息:

Bundle bundle = getIntent().getExtras();
String message = bundle.getString("message");

然后可以在文本视图中设置文本:

TextView txtView = (TextView) findViewById(R.id.your_resource_textview);    
txtView.setText(message);

希望这能有所帮助!

 类似资料:
  • 我想将一些变量从一个活动转换到另一个活动,但我的应用程序在我的日志中崩溃了: 这是我的密码

  • 我试图将图像从一个活动发送到另一个活动,但我不知道如何设置ImageView。

  • 问题内容: 我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。 这是到目前为止我的MainActivity代码: 我第二项活动MainGame的代码: 当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来

  • 我目前正在做一个项目,我需要帮助。 我想发送的名称,总数量和总价的一个产品的数量在我的添加到购物车活动。 @override public void onListClick(final ItemInfo item){ 上面应该有什么代码发送到购物车活动?? toast.maketext(mainactivity.this,“added To cart”,toast.length_short).sh

  • 我需要拍照并发送到主活动并发送到第三活动 这是MainActivity的代码 我有任何错误,但当我试图拍摄一张照片时,我得到这样的信息:不幸的是,第一相机停止了,我的问题是什么?

  • 我需要将数据从片段发送到另一个活动 我在Homeactive下的LoadsFraank中使用此代码 在另一个活动(LoadActivity)中接收数据 但是意图没有附加条件 请看下面的截图