Intent :: putExtra()和EXTRA_MESSAGE ="com.example.myfirstapp.MESSAGE";

Chr*_*yen 4 android android-intent

我的代码如下:

首先,我想知道第20行:

我有两个问题:

一个.为什么将MY_MESSAGE分配给com.example.myfirstapp.MESSAGE?湾 什么是com.example.myfirstapp.MESSAGE?C.我在任何地方都做过MESSAGE; 这是自动制作成r.java文件中的变量,还是我需要在某处?

其次,关于第40行:intent.putExtra(EXTRA_MESSAGE,message);

我不确定这个方法是否会为即将被调用的活动添加消息或者是什么......部分地,由于不完全了解Intent的意义,我很难理解这一点. 我想阅读我关于一切是什么的200基本部分,但是我已经设定了截止日期,并且我被告知暂时不要采用这种方法来完成这个项目

鉴于Android Docs的解释,我知道一个意图是:

意图本身,一个意图对象,要被执行的无源数据结构保持的动作的抽象描述

A.)有人可以解释一下使用的意图或者提供一些比文档更好的快速文章吗?

B.)更清楚地解释putExtra()的作用和这些参数:

  • name包含前缀的额外数据的名称.
  • value String数组数据值

Eri*_*ric 6

一个Intent适当的名字; 这就是你想要做的.正如文件所说:

它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂.它基本上是一个被动数据结构,包含要执行的动作的抽象描述.

根据您的代码,您熟悉启动Activity通道Intent:

new Intent(this, DisplayMessageActivity.class);
Run Code Online (Sandbox Code Playgroud)

这将使用您的current Activity作为启动它的上下文Intent,并使目标类启动.我想你已经知道了.基本上,这Intent只是Android设备遵循的指南,以便它使用正确的信息启动正确的目标.

在你真正的问题上:

  1. "用途是什么意思?" 这在上面描述; 基本上,它用于告诉操作系统你的目标是什么,它来自哪里,以及它应该提供什么数据.你已经看到了大部分的事情没有意识到; 这个构造函数是你一直在使用的构造函数,详细说明了"from"和"to"部分.使用时putExtra,您提供的Intent数据可以提供给代码的"to"部分.
  2. name参数最好由文档总结:"额外数据的名称,包前缀." 这就像一把钥匙HashMap; 它是您要打包的内容的字符串标识符.他们告诉你使用你的包的前缀,只是为了防止混淆.在您的情况下,您应该使用"com.SG.Three_Piece_Radio.YOURKEYNAME"; 这不必在任何地方声明,也不是常数.只是一个字符串.该值只是额外内容(数据); 这可能是一个不同的每吨的things-- short,int,String,Parcelable,等等.(这些都可以在各种中找到putExtras中Intent文档.)

一旦你Intent收到,你可以使用那些数据相同的比特(例如,String myStr = getIntent().getStringExtra("com.SG.Three_Piece_Radio.YOURKEYNAME");),做任何你在想与他们Activity打电话来.