1

在我的 Android 应用程序中,我想将手机上所有可用语言环境的列表放入ListPreferencemyPreferenceActivity中,以便用户可以选择他想要更改货币符号输出的语言。

到目前为止,我已经尝试过:

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

我在这条线上得到一个 JavaNullPointer 异常listPref.setEntries(entries);,所以我相信我没有CharSequence正确地形成我的,所以ListPReference无法读取它。

有任何想法吗?

4

1 回答 1

0

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

于 2011-10-13T19:56:30.457 回答