我有一个包含大约 1000 个药物名称的字符串数组资源
<string-array name="index">
<item>Aspirin</item>
<item>Levitra</item>
....
</string-array>
我试图将这个字符串数组加载到 Activity 中的 String[] 中。 使用此处提供的 Google java 文档提供的相同语法。 http://developer.android.com/guide/topics/resources/string-resource.html#StringArray
Resources res = getResources();
String[] drugs = res.getStringArray(R.array.index);
似乎我的字符串数组有太多记录,它导致我的应用程序崩溃(堆栈溢出?)当我将字符串数组资源减少到大约 506 条记录时,应用程序再次运行,但甚至添加了 1 个元素在字符串数组中会使应用程序崩溃。
我该怎么办?我想编写逻辑代码来过滤列表并对其执行其他操作。我的应用程序中没有 SQL 数据库,因此无法在数据库中进行处理。有没有一种方法可以在不将字符串数组资源加载到 String [] 中的情况下遍历字符串数组资源?我注意到资源是一个指针。或者是否有可行的替代数据结构或方法?
谢谢,
最佳答案
您是否有不想使用 SQL 数据库的原因?我强烈建议设置 SQLite 数据库。字符串数组不是为这种大小的数据设计的。您的应用会变慢,并且会消耗大量内存。
我能想到的唯一替代方法是使用单独的字符串并拥有一个字符串 ID 值数组 - 这应该可行。
关于java - Android 开发字符串数组资源太大,导致 Android 应用程序崩溃!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272828/