2012-02-29 18 views
1

xmlのリソースに動的にアクセスする必要があります。Android - 動的にxmlリソースにアクセス

res=getResources(); 
plc=res.obtainTypedArray(R.array.id1); 

私はループの中でそれをしたいと思っ=>変更ID1 ID2、ID3、...、id1000に、そのそれぞれの配列の項目とそのループの仕事インチ私は単一の配列でそれをすることはできますが、別の配列にジャンプすることはできません。どのように私はそれを行うことができます任意の提案? ObtainTypedArrayは整数のみをパラメータとして想定しています。

ありがとうございました!

+2

これはあなたに役立ちますhttp://stackoverflow.com/q/5406108/839527 – JProgrammer

+0

ありがとう、JProgrammer。私はあなたが何度も提案した投稿を見てきましたが、それが私にとってどのように役立つのか分かりません。私はちょうどJavaで始まった、私は他の言語の無数の前に使用しています。少し貧しい人のためにあなたの知恵をもう少し追加できますか? ;-)あらかじめありがとうございます – Whitewall

答えて

2

は、あなたが名前の整数を持っていると仮定しましょうインデックスのデータ配列

<array name="arrind"> 
    <item>@array/id1</item> 
    <item>@array/id2</item> 
    <item>@array/id3</item> 
</array> 

<string-array name="id1"> 
    <item>...</item> 
    <item>....</item> 
    <item>...</item> 
</string-array> 

<string-array name="id2"> 
    ... 
</string-array> 

... 

2)は、Aを思い出すという配列を作成し、XMLで

1):ここでは、コードでXMLからTypedArrayを呼び出すの私の問題への正確な解でありますコード内rrayフィールドのアプローチを使用しないようにすべてのあなたの有益な助言、Idecidedため

Resources res=getResources(); 
TypedArray index=res.obtainTypedArray(R.array.arrind); //call the index array 

    for (int i = 0; i < n; i++) { 
     int id=index.getResourceId(i,0); //get the index 
     if (id != 0){ 
      String[] handle=new String[n]; 
      handle=res.getStringArray(id); //use the index to get the actual array 
      String a=handle[0]; //Access items in your XML array 
      String b=handle[1]; 
      c=... 

     } 
    } 

おかげで私は、私はより多くの経験を積む後、私はそこに着くと確信しています! 2Dアレイを使用してこのソリューションをさらに改善することができますが、私のコードでそれを使用することはできません...

+0

それはちょっと複雑で読みにくいですが、うまくいけば動作します – slayton

1

コメントの答えは、あなたがそれを行う方法を正確に示しています。ここでは一例です: ID1、ID2、ID3、ID4、...、あなたがそれらにアクセスし、これを配列にそれらを保存することができID10:

int array[] = {1,2,3,4,5,6,7,8,9,10}; 
int value[10]; 

for (i=0; i<10; i++){ 
    String fieldName = "id" + Integer.toString(array[i]); 
    Field field = R.id.class.getField(fieldName); 
    value[i] = field.getInt(null); 
} 
+0

ありがとう、華麗です!私はまた、このポストは非常に便利であることが判明しました:http://stackoverflow.com/questions/4326037/android-resource-array-of-arrays ... – Whitewall

関連する問題