2011-10-13 44 views
1

在我的Android應用程序中,我想將手機上所有可用語言環境的列表放入我的PreferenceActivity中的ListPreference,以便用戶可以選擇他想要更改貨幣符號的輸出。將Locale []轉換爲CharSequence []放置在Android應用程序的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); 

我得到一個JavaNullPointer異常在這條線上listPref.setEntries(entries);,所以我相信我還沒有形成我CharSequence正確,所以ListPReference無法讀取它。

有什麼想法?

回答

0

看起來更有可能listPref實際上是空 - 即root.findPreference("list")返回null。這就是你應該首先查看(至少檢查)的內容。

+0

YOu是正確的,那麼我應該查找ListPreference的值呢?不是這樣的:android:key =「list」 –

+0

@zeroFiG:我不能說我自己曾經做過任何Android開發,所以我真的在猜測......但是你有沒有調用過'addPreferencesFromResource'? –

+0

是的,我做了,我編輯我的代碼,以添加上面的額外行。 –

相關問題