3

ここで述べたように、Android の xml ファイルから文字列配列を読み取ることができます。ただし、これは単純な文字列配列しか読み取れません。

私の質問は、他のタイプのオブジェクトを含む配列を読み取ることができるかということです。xml ファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="difficulty_level_names">
        <item>
            <name>IELTS</name>
            <type>1</type>
        </item>

        <item>
            <name>SAT</name>
            <type>2</type>
        </item>

        ................
        .........

    </string-array>
</resources>

更新: もちろん、各アイテムにはさらに多くのパラメーターが存在する可能性があります..

4

1 に答える 1

2

いいえ、あなたが提供した方法で。私は2つの解決策を考えていますが、どちらも理想的ではありません。

1.

複数の配列を作成できます。たとえば、名前の文字列配列、整数の整数配列などです。すべてのオブジェクトは、同じインデックスでこれらの配列に格納されます。維持するのは簡単ではありませんが、オブジェクトから 1 つのプロパティのみにアクセスする場合は、メモリ効率が向上する可能性があります。
私はそれを説明しました: https://stackoverflow.com/a/6774856/538169

または

2.

1 つの型付き配列を作成し、その配列にオブジェクトのプロパティを含めることができます。次のようにインデックスを変換することで、プロパティにアクセスできます。

final int PROPERTIES_COUNT_IN_OBJECT = 2;
int objectIndex   = 0; // the first element in your's example
int propertyIndex = 1; // the second property: <type>1</type>
int indexInArray  = objectIndex * PROPERTIES_COUNT_IN_OBJECT + propertyIndex;

次に、TypedArray からこのプロパティを取得します。

2 番目の解決策は、維持するのがはるかに困難です。別のプロパティを追加するのは悪夢です。

于 2012-02-06T12:03:42.273 に答える