我想爲我的用戶在文本框中輸入文本時具有自動完成功能。在android中使用AutoCompleteTextView可以輕鬆實現。最初,我建立/res/values/strings.xml我的字符串數組作爲android:AutoCompleteTextView的字符串數組大小限制
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="autocomplete_list">
<item>text 1</item>
<item>text 2</item>
<item>... (many more) ...</item>
<item>text 1499</item>
<item>text 1500</item>
</string-array>
</resources>
在我的Java代碼,我有
// load autocomplete list
String[] textList= getResources().getStringArray(R.array.autocomplete_list);
myAutoCompleteTextView.setAdapter(new ArrayAdapter<String>(this, R.layout.autocomplete_list, textList));
這工作得很好,當我只有幾件事情我串。但是,如果我的列表很長,說超過1000項,我得到運行時錯誤。應用程序將自行關閉,沒有任何警告(沒有應用程序強制關閉錯誤)。它只是消失。 logcat中沒有任何內容。
所以我超過Java中的字符串數組中的最大元素可索引?那是什麼導致了這個問題?如果是這樣,任何人都知道最大值是多少?它看起來不像內存問題,因爲我沒有得到OutOfMemory錯誤。
編輯:
因此很明顯,這是衆所周知的問題,似乎是對的getResource()getStringArray的限制()限制
Should I be using something other than getResource().getStringArray() to populate a large array?
將首先嚐試他的解決方案,看看如何。以及它的作品,但如果你知道一個更好的方式來做到這一點,請隨時分享。謝謝!