2

不硬编码用作字典、地图和附加包等中的键的字符串通常是一种好习惯,还是有关系?

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();
}
4

2 回答 2

3

良好的编程和 MVC 模型会说不要对您的密钥进行硬编码。我也不会把它放在你的字符串资源中。相反,我更喜欢使用常量。如果您将它们定义为public static其他类也将能够引用相同的数据。这样,您只需在代码中输入一次实际密钥。

于 2012-08-08T18:42:49.583 回答
2

您应该使用资源字符串的唯一时间是它有意义的时候。如果您需要将您的应用程序翻译成西班牙语、法语、俄语等,您是否需要翻译您的内部命名?可能不是。我使用常量(最终)进行内部片段命名。在我看来,这是最有意义的。

对于片段的可见命名,例如选项卡式显示。是的,使用字符串资源。他们是你的朋友。

于 2012-08-08T18:44:52.913 回答