gpt4 book ai didi

android - 是否可以在 android 运行时更新 string.xml 文件?

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:16 30 4
gpt4 key购买 nike

我想在我的应用程序中动态应用本地化,所以是否可以在 java 文件中定义字符串并将该字符串获取到我们的布局 xml 文件,即我们将 @string/anystringname 替换为 java 文件中定义的字符串到我们的布局文件@somestring定义到java文件????

最佳答案

基本上没有。

您不能动态地操作资源文件。您需要自己实现此类功能。

这是一个例子:

英语.json

{
"hello": "Hello"
}

法语.json

{
"hello": "Bonjour"
}
public class StringManager {
private static StringManager sInstance = null;
private static String sDefaultLanguageCode = "en";

private Map<String, JSONObject> mLanguageMap = new ArrayMap<>();

private StringManager() {
}

public static StringManager getInstance() {
if (sInstance == null) {
synchronized (StringManager.class) {
if (sInstance == null)
sInstance = new StringManager();
}
}
return sInstance;
}

public static void setDefaultLanguageCode(String languageCode) {
sDefaultLanguageCode = languageCode;
}

public void addLanguage(String languageCode, JSONObject json) {
mLanguageMap.put(languageCode, json);
}

public String getString(String key) {
return mLanguageMap.get(mDefaultLanguageCode).getString(key);
}

public String getString(String languageCode, String key) {
return mLanguageMap.get(languageCode).getString(key);
}
}

public class SomeActivity extends Activity {
...
public void initStringResources() {
// assume englishJsonObject is created from english.json
StringManager.getInstance().addLanguage("en", englishJsonObject);
StringManager.getInstance().addLanguage("fr", frenchJsonObject);

StringManager.setDefaultLanguageCode("fr");
}

public void useSomeString() {
String helloString = StringManager.getInstance().getString("hello");
// helloString will be "Bonjour"

// and you can get specific language string
String englishHelloString = StringManager.getInstance().getString("en", "hello");
}

// this may be called from Button or other UI component
public void onLanguageChanged(String languageCode) {
StringManager.setDefaultLanguageCode(languageCode);
// and update UI components that display localized strings
}
}

关于android - 是否可以在 android 运行时更新 string.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37496454/

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