gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:45:32 25 4
gpt4 key购买 nike

我是 Android 编程新手,在我正在编码的应用程序中,有些部分需要从共享首选项中获取数据,这是在首选项 Activity 中设置的。现在,首选项 Activity 主要使用 XML 进行编码,包括首选项键,并且应用程序以 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 有缺陷,因为它需要访问外部类中的资源。如果您想从另一个 fragment 或 Activity 读取该值,需要吗?

关于java - Android字符串,我应该使用strings.xml还是java字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29170951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com