2

すべての名前が tColor1、tColor2、tColor3 などの形式の名前を持つ colors.xml に色のリストがあり、名前の一部としてループ整数を使用して for-to-do ループでそれらを取得したいと考えています。ので、私は持っています

for (int i = 0; i < numTrails; i++) {
    newColors[i] = R.color.tColor + i;
}

Rクラスをそのように使用できないことは理解しましたが、色を取得するために他にどのような方法を使用できますか?

4

2 に答える 2

6

newColors配列がintリソースIDを持つ配列であると仮定して、このようなことを行うことができますか?

String colorId = "tColor";
Resources resources = getResources();
for (int i = 0; i < numTrails; i++) {
    newColors[i] = resources.getIdentifier(colorId+i, "color", getPackageName());    
}

それがあなたの色の配列である場合、getResources().getColor(...)代わりにその結果に使用してください:

String colorId = "tColor";
Resources resources = getResources();
for (int i = 0; i < numTrails; i++) {
    int resId = resources.getIdentifier(colorId+i, "color", getPackageName());
    newColors[i] = resources.getColor(resId);
}
于 2012-06-09T19:40:46.757 に答える
0

試みることができます

ページの最後にある Typed Array を参照してください .....

http://developer.android.com/guide/topics/resources/more-resources.html#TypedArray

于 2012-06-09T19:46:13.197 に答える