使用sqlite共享数据

时间:2013-08-09 21:24:21

标签: android arrays

我正在编写一个测验应用程序,我想在代码中的任何地方访问我的数组,我尝试使用SharedPreferences但它没有用。有人知道如何放置数组:

public static final int[] ALL_ANSWERS = {
    R.array.answer,
    R.array.answer1,
    R.array.answer2,
    R.array.answer3
    };

在数据库中并在代码中的任何位置访问它们。这些答案是XML字符串数组,我想把它们作为按钮文本,apropos,作为问题的答案。每个字符串数组都是一批问题的批量答案。答案示例:

<?xml version="1.0" encoding="UTF-8"?>
<new_answers>
<answer1>
    <text1>Zvonimir</text1>
    <text2>Tomislav</text2>
    <text3>Branimir</text3>
    <text4>Viseslav</text4>
</answer1>
<answer2>
    <text1>Stipe Mesic</text1>
    <text2>Ivo Josipovic</text2>
    <text3>Franjo Tuđman</text3>
    <text4>Mate Granic</text4>
</answer2>
<answer3>
    <text1>Hrvatski politicar</text1>
    <text2>Hrvatski akademik</text2>
    <text3>Hrvatski glazbenik</text3>
    <text4>Hrvatski branitelj</text4>
</answer3>
</new_answers>

提前致谢!

2 个答案:

答案 0 :(得分:0)

如果您正确定义了字符串数组(实际上它们没有正确定义),它可以工作。 Android使用精确约定如何创建资源,您应该遵循它们。

尝试以与此相同的方式定义数组:

<string-array name="answer1">
    <item>Zvonimir</item>
    <item>Tomislav</item>
    <item>Branimir</item>
    <item>Viseslav</item>
</string-array>

最后将它们作为 arrays.xml 放到values文件夹中。现在它应该有效。

答案 1 :(得分:0)

为什么不能将每个答案存储为单个元组,其属性为answerId - choice1 - choice2 - choice3 - choice4?

看起来每个答案都有相同数量的选择,所以而不是一个数组,你可以用这种方式设置你的模式。访问与问题编号关联的行并检索选项。如果你不想创建一个新的关系,你甚至可以添加一个答案正确的列(虽然我不确定这是最好的设计 - 即第三种常规形式?)

在我看来,只有单独的表格来提问和使用设计良好的查询比尝试存储和解析XML数组更容易。