在android中通过extras传递数据的命名约定

dam*_*shu 26 android android-intent

当传递诸如Intent.putExtra("myName",myName)之类的额外内容时,额外名称的约定是什么?

即:如果在两个活动之间传递数据,两者都会在id"myName"下放置/提取数据,但是我应该在任何地方硬编码"myName",还是将值保存在R.values.string中?

Eri*_*ine 45

硬编码绝对不是理想的解决方案.

Android框架中使用的约定是创建 public static final名为EXTRA_FOO(其中FOO是密钥的名称)的常量,Intent.EXTRA_ALARM_COUNT

常量的实际值是名称间隔字符串以避免冲突: "android.intent.extra.ALARM_COUNT"

如果您不想在活动与常量之间创建依赖关系,那么您应该考虑将这些键放在strings.xml文件中的字符串值中.在xml中定义键时,我倾向于遵循相同的命名约定:

<string name="EXTRA_MY_NAME">com.me.extra.MY_NAME</string>
Run Code Online (Sandbox Code Playgroud)

它仍然像Java一样读取静态常量:

getString(R.string.EXTRA_MY_NAME);
Run Code Online (Sandbox Code Playgroud)

  • 我不同意使用strings.xml,因为我认为它不是很干净的解决方案.我是android开发的新手,但strings.xml似乎应该只包含可在应用程序的UI上显示的字符串.可能需要国际化的字符串,等等.相反,我会将所有键存储在一个单独的类中,无论是ExtrasKeys,应该在所有活动之间共享. (8认同)