在Android XML中,我想在android:tag中添加多个值。我发现了一种可以使用倍数来增加值的方法。
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<tag android:id="@+id/value_one" android:value="@string/value_one"/>
<tag android:id="@+id/value_two" android:value="@string/value_two"/>
<tag android:id="@+id/value_three" android:value="@string/value_three"/>
</TextView>
但此方法仅适用于API级别21及更高级别。使用上述方法时,Android会出现以下错误。
标签仅用于API级别21及更高级别(当前最小值为19)
在API级别19中,我们可以选择以编程方式设置标记。是否还有其他选项可以在XML中添加多个字符串或Object?
答案 0 :(得分:1)
在android:tag =“”中设置多个值的技巧并不在android:tag =“”内,因为您始终可以像在android:tag =“ TAG1:TAG2:TAG3”中那样设置多个标签。诀窍是在代码中查找并解析标记。在检查是否存在特定标记时,请执行以下操作(调整并根据需要添加错误处理):
public static boolean isTagDefined(View view, String tag) {
boolean rc = false;
Object tags = view.getTag();
if (tags instanceof String) {
rc = ((String) tags).contains(tag);
}
return rc;
}
命名和定界标签时要小心。如果需要键/值对,请更改标签和解析技术(StringTokenizer)以处理诸如“ KEY1_VALUE:KEY2_VALUE”之类的内容。您也可以使用JSON对象,但是我认为这可能会过大,因为简单的控制/调试功能可能需要使用视图标签。
答案 1 :(得分:0)
向View
添加额外信息的方法是使用setTag
和getTag
。
What is the main purpose of setTag() getTag() methods of View?