一般来说,不要硬编码在字典,地图和附加组件等中用作键的字符串,或者它是否重要?
extras.putSerializable("myKey", getItem(thisIndex).getSomeObject());
节
extras.putSerializable(ctx.getString(R.string.my_key), getItem(thisIndex).getSomeObject());
在实例化片段并将页面标题与片段关联以用于页面标题指示符时,我正在执行以下操作
Bundle pageTitle = new Bundle();
pageTitle.putSerializable(getString(R.string.page_title_key), getString(R.string.somePageTitle));
fragments.add(Fragment.instantiate(this, MyPageFragment.class.getName(), pageTitle));
然后在我的FragmentPagerAdapter中:
@Override
public CharSequence getPageTitle(int position) {
return this.fragments.get(position).getArguments().getSerializable(ctx.getString(R.string.page_title_key)).toString();
}
答案 0 :(得分:3)
良好的编程和MVC模型会说没有硬编码你的密钥。我也不会把它放在你的字符串资源中。相反,我更喜欢使用常量。如果将它们定义为public static
,其他类也可以引用相同的数据。这样,您只需在代码中输入一次实际密钥。
答案 1 :(得分:2)
您应该使用资源字符串的唯一时间是有意义的。如果您需要将您的应用程序翻译成西班牙语,法语,俄语等,您是否需要翻译内部命名?可能不是。我使用常量(final)进行内部片段命名。在我看来,这是最有意义的。
对于片段的可见命名,比如标签显示。是的,使用字符串资源。他们是你的朋友。