如何将数据从一个活动(意图)发送到另一个活动?

我使用此代码发送数据:

Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);

当前回答

如果在FragmentActivity中使用,请尝试以下操作:

第一页扩展了FragmentActivity

Intent Tabdetail = new Intent(getApplicationContext(), ReceivePage.class);
Tabdetail.putExtra("Marker", marker.getTitle().toString());
startActivity(Tabdetail);

在片段中,您只需要首先调用getActivity(),

第二页扩展片段:

String receive = getActivity().getIntent().getExtras().getString("name");

其他回答

//  How to send value using intent from one class to another class
//  class A(which will send data)
    Intent theIntent = new Intent(this, B.class);
    theIntent.putExtra("name", john);
    startActivity(theIntent);
//  How to get these values in another class
//  Class B
    Intent i= getIntent();
    i.getStringExtra("name");
//  if you log here i than you will get the value of i i.e. john

不要初始化另一个新的Intent来接收数据,只需执行以下操作:

String id = getIntent().getStringExtra("id");

从意图中获取不同类型的额外信息

要从Intent访问数据,您应该知道两件事。

钥匙数据的DataType。

Intent类中有不同的方法来提取不同类型的数据。看起来像这样

getIntent().XXX(KEY)或intent.XXX(KEY);

因此,如果您知道在otherActivity中设置的变量的数据类型,则可以使用相应的方法。

从Intent检索活动中的字符串的示例

String profileName = getIntent().getStringExtra("SomeKey");

不同数据类型的方法的不同变体列表

您可以在意向正式文档中查看可用方法列表。

只是一个建议:

在你的i.putExtra(“id”…..)中不使用“id”或“name”,我建议在有意义的时候,使用当前可以与putExtra一起使用的标准字段,即Intent.EXTRA_shing。

完整的列表可以在Intent(Android开发者)上找到。

首先,使用getIntent()方法获取开始活动的意图:

Intent intent = getIntent();

如果额外的数据表示为字符串,则可以使用intent.getStringExtra(字符串名称)方法。在您的案例中:

String id = intent.getStringExtra("id");
String name = intent.getStringExtra("name");