我 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
我想要商店价值与不依赖于用户语言的关键,我该如何实现?
答案 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);