ListPreference和翻译

时间:2017-02-17 17:23:50

标签: java android

var myNonDupOfficeList = officeList .GroupBy(o => new { o.Address1, o.Address2, o.BusinessName }) .OrderBy(g => g.Key.BusinessName).ThenBy(g => g.Key.Address1).ThenBy(g => g.Key.Address2) .Select(o => new MyBusiness { BusinessName = o.BusinessName, BusinessAddress1 = o.Address1, BusinessAddress2 = o.Address2 }).ToList(); extends并将此类代码添加到PreferenceFragment方法中:

onCreate

有两个变体(它们没有打开/关闭,所以我使用 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我想要商店价值与不依赖于用户语言的关键,我该如何实现?

1 个答案:

答案 0 :(得分:1)

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

在您的代码中,您可以将其更改为:

    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);