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

时间:2015-03-20 16:04:13

标签: java android xml string

我是Android编程的新手,在应用程序中,我编码的部分需要从共享首选项中获取数据,这是在首选项活动中设置的。 现在,首选项活动主要用XML编码,包括pref键,应用程序用Java代码获取这些数据。到现在为止还挺好。 错字来自拼写错误,让我说我写了#34;设置1"用XML和" settings1"在java中,我可能会烧掉每个想法调试,但我不会看到它。为了避免这种情况,我将字符串保存在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 个答案:

答案 0 :(得分:1)

第二个选项更好(并且进行这样的查找的开销很小)

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