当我们想要将一些数据传递给另一个应用程序组件时,我们会使用额外的那个意图.意图只是一个键值对.
我们首先将我们的键定义为公共常量,并赋予它一个值.例如
public static final String extra_key = "com.example.myapp.MESSAGE";
我们还必须为密钥分配意图需要携带的数据.例如
String extra_value = editText.getText().toString();
然后我们做了额外的意图:
intent.putExtra(extra_key, extra_value);
我的问题:
>为什么密钥必须公开?
>为什么我们首先需要初始化密钥,为什么我们不能只声明它,因为它将被分配一个值(数据到
无论如何都要被意图携带.那么为什么我们不能做点什么呢
像public static final String extra_key;
>我已经读过,键值应该包含反向域名,以便在其他包装插入时它是唯一的.但是什么
无论如何都要给它一个独特的价值
分配了另一个值,该值是由…承载的数据
意图.
先感谢您.
解决方法:
为什么密钥必须公开?
它没有.这不是关于意图额外或关键值对的问题.这只是一个关于Java变量范围和可见性的问题.
在调用类:
intent.putExtra("KEY_name", "Key_Value");
在接收组件中:
intent.getStringExtra("KEY_name");
这项工作很好.好的做法是使其成为公共最终静态,以便发送方和接收方可以使用相同的常量名称.
为什么我们首先需要初始化密钥,为什么我们不能只声明它,因为它将被分配一个值(意图携带的数据)无论如何.那么为什么我们不能做类似的事情
往上看.键名只不过是一个字符串.密钥不携带数据,值就是.
我已经读过,键值应该包含反向域名.
这毫无意义.关键值是发送者想要发送给接收者的任何数据.或者你的意思是关键名称?密钥的名称必须由接收方知道,因此如果此意图是启动外部组件,则必须使用接收方定义的密钥名称.如果意图是内部组件,那么您将名称定义为您想要的任何名称.我认为没有充分理由包含包名.它只是使用更多的内存.
总结以上是内存溢出为你收集整理的android – 为什么要初始化额外的密钥?全部内容,希望文章能够帮你解决android – 为什么要初始化额外的密钥?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)