gpt4 book ai didi

android:AutoCompleteTextView 的字符串数组大小限制

转载 作者:行者123 更新时间:2023-11-29 02:13:10 25 4
gpt4 key购买 nike

我想为我的用户在文本框中输入文本时提供自动完成功能。这在 android 中使用 AutoCompleteTextView 很容易实现。最初,我在/res/values/strings.xml 中构建我的字符串数组作为

<?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?

首先尝试他的解决方案,看看效果如何,但如果您知道更好的方法,请随时分享。谢谢!

最佳答案

我也发现了这个问题。最后,我不得不将我的数组分成几个元素,使用 getResources().getStringArray() 读取每个元素,然后使用普通 Java 将它们全部连接到一个 ArrayList 或类似的元素中。

关于android:AutoCompleteTextView 的字符串数组大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com