0

私のアプリでは、描画可能な ID の配列を使用しています。res/values/arrays.xml に保存された XML ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </array>
</resources>

次に、次のコードを使用して取得します。

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

しかし、「配列を解決できないか、フィールドではありません」というエラーが表示されます。

では、xml ファイルから ID を含む int の配列を取得するにはどうすればよいでしょうか。

ありがとう :)

4

4 に答える 4

1

プロジェクトをクリーニングしてみてください。プロジェクト - クリーン...そして、インポートを確認してください。CTRL + Shift + O

于 2012-11-17T14:34:06.703 に答える
1

次のような res フォルダー内の arrays.xml ファイルで型指定された配列を使用する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </string-array>

</resources>

次に、アクティビティで次のようにアクセスします。

TypedArray imgs = getResources().obtainTypedArray(R.array.icons);
//get resourceid by index
imgs.getResourceId(i, -1)
// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, -1));
于 2012-11-17T14:51:04.340 に答える
0

res/values/strings.xml のように宣言する必要があるのではないかと思っています

<string-array name="numbers_array">
    <item>9</item>
    <item>10</item>
    <item>11</item>
    <item>12</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
</string-array>

次に、上記の配列の数字をIDに置き換えます...

于 2012-11-17T14:35:00.657 に答える
0

私のコードは大丈夫でした。私の解像度ディレクトリには、名前に大文字が含まれる画像がありました! それは [a-z0-9_.] のみを含む無効なファイル名です :) これが、R クラスでエラーが発生した理由です。ありがとうございます!

于 2012-11-17T15:35:57.313 に答える