我想尝试制作一个显示当天名言的 Android 应用程序。所以我将有 365 个报价,并且每天都会显示一个新报价。关于如何做到这一点的任何想法?我的string.xml
文件中需要 365 个@strings 吗?有没有办法通过索引访问字符串数组(或其他数据结构)来完成此操作?
问问题
474 次
3 回答
2
如果要使用资源:
Resources res = getResources();
String[] quoteTexts = res.getStringArray(R.array.quotes_array);
quoteTexts[dayNumber]..<---- gives you your text
在资源文件中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="quotes_array">
<item>I am rich</item>
<item>Quote 2</item>
<item>Quote 3</item>
....365 .... times....
</string-array>
</resources>
于 2012-12-31T02:26:21.903 回答
2
您可以使用具有 2 列的 SQLite DB
Day|Quote
1 |Your Quote day 1
2 |Your Quote day 2
ETC...
您可以使用 SQLite 编辑器编译您的数据库,然后将编译后的数据库放入您的应用程序中。
如果你想定义一个 365 行的字符串数组string.xml
,你可以添加代码
<string-array name="my_quotes_array">
<item>Live or exist</item>
<item>Quote 2</item>
<item>Quote 3</item>
<item>Quote 4</item>
<item>Quote 5</item>
....etc., one line per day....
</string-array>
在strings.xml
但我认为这不是一个好的解决方案
于 2012-12-31T03:05:24.500 回答
0
各种方法都可以,如果这组字符串以后不改的话,还是存成静态类比较好。因为 XML 解析器需要一些额外的(比静态类更多的)时间和资源(内存、cpu)来解析,而 SQLite 需要额外的时间、资源来创建连接等。
但是 XML 中的有机数据看起来更好(更合乎逻辑,更通畅)。
还要查看 原始资源与 SQLite 数据库
于 2012-12-31T02:52:30.033 回答