将 Locale[] 转换为 CharSequence[] 以放置在 Android 应用程序中的 ListPreference 中

发布于 2024-12-09 20:40:41 字数 1006 浏览 2 评论 0原文

在我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

私藏温柔 2024-12-16 20:40:41

看起来更有可能 listPref 实际上为 null - 即 root.findPreference("list") 返回 null。这就是您应该首先研究(并且至少检查)的内容。

It seems more likely that listPref is actually null - i.e. root.findPreference("list") is returning null. That's what you should look into (and at least check) first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文