0

我想尝试制作一个显示当天名言的 Android 应用程序。所以我将有 365 个报价,并且每天都会显示一个新报价。关于如何做到这一点的任何想法?我的string.xml文件中需要 365 个@strings 吗?有没有办法通过索引访问字符串数组(或其他数据结构)来完成此操作?

4

3 回答 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 回答