首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ListPreference与翻译

ListPreference与翻译
EN

Stack Overflow用户
提问于 2017-02-17 17:23:50
回答 1查看 78关注 0票数 1

I extends PreferenceFragment并将此类代码添加到onCreate方法中:

代码语言:javascript
复制
 final ListPreference pref = (ListPreference) findPreference(PREF_NAME);
 String[] array={getString(R.string.variant1), getString(R.string.variant2)};
 CharSequence[] entries = array;
 CharSequence[] entryValues = array;
 pref.setEntries(entries);
 pref.setDefaultValue(getString(R.string.variant1));
 pref.setEntryValues(entryValues);

有两个变体(它们没有打开/关闭,所以我使用ListPreference)。

所以我的问题是:从一方面我想看到在用户界面中的适当翻译,所以你可以看到我使用了getString,从另一只手在SharedPreferences中,我想用不依赖用户语言的密钥存储值,我如何实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-17 20:08:45

EntryValues数组用作条目数组中项的键,因此这两个数组的大小应该相同。对于用户,将显示条目数组中的值(因此需要翻译它们),但是在共享首选项中,从entryValues数组中保存选定的值(因此不应该本地化)。

在您的代码中,您可以将其更改为如下所示:

代码语言:javascript
复制
    final ListPreference pref = (ListPreference) findPreference(PREF_NAME);
    CharSequence[] entries = new String[]{getString(R.string.variant1), getString(R.string.variant2)};
    CharSequence[] entryValues = {"variant1", "variant2"};
    pref.setEntries(entries);
    pref.setDefaultValue("variant1");
    pref.setEntryValues(entryValues);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42303925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档