Android字符串,我应该使用strings.xml还是java字符串



我是android编程的新手,在我正在编写的应用程序中,有一些部分需要从共享偏好中获取数据,这是在偏好活动中设置的。现在,首选项活动主要用XML编码,包括pref键,应用程序用Java代码获取这些数据。到目前为止,一切都很好。问题是拼写错误,比如说我用XML写"Settings1",用java写"Settings1",我可能会在调试时烧掉所有的想法,但我看不到。为了避免这种情况,我将字符串保存在一个java类和一个具有相同字符串的XML资源文件中。但仍然存在同样的问题。

<resources>
   <string name="SETTINGS1">Settings1</string>
</resources>
class Keys {
   public static final String SETTINGS1 = "Settings1";
}
<SwitchPreference
    android:key="@string/SETTINGS1" />
if(sharedPref.getBoolean(Keys.SETTINGS1, true)){ doSomething(); }

但我只想写一次键值,所以我想出了两个可能的解决方案。第一个:

<resources>
   <string name="SETTINGS1">Settings1</string>
</resources>
class Keys {
   public static final String SETTINGS1 = resources.getString(R.string.SETTINGS1);
}
<SwitchPreference
    android:key="@string/SETTINGS1" />
if(sharedPref.getBoolean(Keys.SETTINGS1, true)){ doSomething(); }

或者:

<resources>
   <string name="SETTINGS1">Settings1</string>
</resources>
<SwitchPreference
    android:key="@string/SETTINGS1" />
if(sharedPref.getBoolean(getString(R.string.SETTINGS1, true)){ doSomething(); }

哪一个更好??我也不想给应用程序带来太多开销,所以如果它们都不好,我就不会使用它们。

第二个选项更好(这样查找的开销最小)

选项1有缺陷,因为它需要访问外部类中的资源。想要从另一个片段或活动中读取该值吗?

最新更新