android - 如何在android中添加多个值:tag

标签 android xml android-layout android-xml

在 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 出现以下错误。

tag is only used in API level 21 and higher (current min is 19)

在 API 级别 19 中,我们可以选择以编程方式设置标签。是否有其他选项可以在 XML 本身中添加多个字符串或对象?

最佳答案

在 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 对象,但我认为这太过分了,因为简单的控制/调试功能可能需要使用 View 标签。

关于android - 如何在android中添加多个值:tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44673557/

相关文章:

java - JSON 数组请求无法应用错误监听器

Android FragmentBreadCrumbs 已弃用?为什么?

安卓发送邮件

android - 使用名称中的变量从 values/colors.xml 中检索颜色(R.color.name + 变量)

java - 在 Tomcat 7 中部署的 war 在 Linux 上的行为与在 Windows 上的行为不同

xml - 将每个计数器值从一个传递到另一个

java - 如何以编程方式更改菜单溢出按钮?

java - TextView 无法转换为 SeekBar

android - 如何在不重复布局和业务逻辑的情况下创建一个可以跨多个 Activity 使用的 UI?

java - Android(Eclipe)视频 View 文件名路径?