1

私のAndroidアプリでは、電話で利用可能なすべてのロケールのリストをListPreference自分のにPreferenceActivity配置して、ユーザーが通貨記号の出力を変更するロケールを選択できるようにします。

これまで私はこれを試しました:

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);形成されていないと思われるため、を読み取ることができません。CharSequenceListPReference

何か案は?

4

1 に答える 1

0

実際には nullである可能性が高いようです。listPrefつまりroot.findPreference("list")、返されnullます。それはあなたが最初に調べるべきです(そして少なくともチェックするべきです).

于 2011-10-13T19:56:30.457 に答える