将 Locale[] 转换为 CharSequence[] 以放置在 Android 应用程序中的 ListPreference 中
在我的 Android 应用程序中,我想将手机上所有可用区域设置的列表放入 PreferenceActivity
中的 ListPreference
中,以便用户可以选择他想要的区域设置更改货币符号的输出。
到目前为止,我已经尝试过:
addPreferencesFromResource(R.xml.preferences);
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
ListPreference listPref = (ListPreference) root.findPreference("list");
Locale[] availableLocales = Locale.getAvailableLocales();
CharSequence[] entries = new CharSequence[Locale.getAvailableLocales().length];
CharSequence[] entriesVal = new CharSequence[Locale.getAvailableLocales().length];
for (int i = 0; i < entriesVal.length; i++) {
entries[i] = availableLocales[i].getDisplayCountry();
entriesVal[i] = Integer.toString(i);
}
listPref.setEntries(entries);
listPref.setEntryValues(entriesVal);
我在这一行 listPref.setEntries(entries);
上收到 JavaNullPointer 异常,所以我相信我没有正确形成我的 CharSequence
,因此 ListPReference
无法读取它。
有什么想法吗?
In my Android app, I want to place a list of all the available Locales on the phone into a ListPreference
in my PreferenceActivity
so that the user can select which one he wants to change the output of the currency symbol.
So far I've tried this:
addPreferencesFromResource(R.xml.preferences);
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
ListPreference listPref = (ListPreference) root.findPreference("list");
Locale[] availableLocales = Locale.getAvailableLocales();
CharSequence[] entries = new CharSequence[Locale.getAvailableLocales().length];
CharSequence[] entriesVal = new CharSequence[Locale.getAvailableLocales().length];
for (int i = 0; i < entriesVal.length; i++) {
entries[i] = availableLocales[i].getDisplayCountry();
entriesVal[i] = Integer.toString(i);
}
listPref.setEntries(entries);
listPref.setEntryValues(entriesVal);
I get a JavaNullPointer Exception on this line listPref.setEntries(entries);
, so I believe that I haven't formed my CharSequence
properly, so the ListPReference
cannot read it.
any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来更有可能
listPref
实际上为 null - 即root.findPreference("list")
返回null
。这就是您应该首先研究(并且至少检查)的内容。It seems more likely that
listPref
is actually null - i.e.root.findPreference("list")
is returningnull
. That's what you should look into (and at least check) first.