我在tag属性中引用了一个字符串数组。如何阅读它才能获得阵列?
我的标签属性布局:
<Button android:id="@+id/btn" ... android:tag="@array/colors" />
我的arrays.xml:
<string-array name="colors">
<item>red</item>
<item>yellow</item>
<item>green</item>
</string-array>
这样我获取标签(不幸的是作为对象):
Button btn = (Button) findViewById(R.id.btn);
Object tag = btn.getTag();
Log.d("COLORS", "tag: " + tag.toString());
日志输出为:
03-06 13:34:12.765: DEBUG/COLORS(2957): tag: @2131099648
当我仔细研究我的R.java时:
public static final int colors=0x7f060000;
这个十六进制值恰好是:
2131099648
所以必须以某种方式获取此Object并将ressource标识符作为int。
而不是
String[] colors = getResources().getStringArray(R.array.colors);
我想做这样的事情:
String[] colors = getResources().getStringArray((int)tag);
感谢您帮助我,
马
答案 0 :(得分:1)
在colors.xml
文件夹中使用res/values
,然后您可以使用:
<resources>
<color name="solid_red">#f00</color>
<color name="solid_blue">#0000ff</color>
<color name="solid_green">#f0f0</color>
<color name="solid_yellow">#ffffff00</color>
</resources>
然后你可以使用这样的东西:
<Button android:id="@+id/btn" ... android:tag="@color/solid_red" />