0

私はクイズアプリを書いていて、コードのどこにでも配列にアクセスしたいのですが、SharedPreferences を試してみましたが、うまくいきませんでした。配列の配列を配置する方法を知っている人はいますか:

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

データベース内にあり、コード内のどこからでもアクセスできます。これらの回答は XML 文字列配列であり、質問に対する回答として、適切なボタン テキストとして配置したいと思います。すべての文字列配列は、一連の質問に対する一連の回答です。回答の例:

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

前もって感謝します!

4

2 に答える 2

0

文字列配列を正しく定義していれば機能する可能性があります (実際には正しく定義されていません)。Android では、リソースの作成方法に正確な規則を使用しており、それらに従う必要があります。

次のように、同じ方法で配列を定義してみてください。

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

最後に、それらを values フォルダーにarrays.xmlとして配置します。そして今、それはうまくいくはずです。

于 2013-08-09T21:28:14.390 に答える
0

それぞれの回答を、属性が answerId - Choice1 - Choice2 - Choice3 - Choice4 である単一のタプルとして保存できないのはなぜですか?

各回答には同じ数の選択肢があるように見えるので、配列ではなく、このようにスキーマを設定するだけで済みます。質問番号に関連付けられた行にアクセスし、選択肢を取得します。新しいリレーションを作成したくない場合は、答えが正しい列を追加することもできます (ただし、これが最適な設計かどうかはわかりません - つまり、第 3 正規形ですか?)

質問と回答用に別々のテーブルを用意し、適切に設計されたクエリを使用する方が、XML 配列を格納して解析するよりも簡単なように思えます。

于 2013-08-09T21:38:40.860 に答える