【问题标题】:Assign a view ID programmatically in Android在 Android 中以编程方式分配视图 ID
【发布时间】:2016-02-04 19:48:57
【问题描述】:

我正在尝试以编程方式创建一个带有几个孩子的RelativeLayout。要使RelativeLayout.RIGHT_OF 之类的规则起作用,子视图必须具有正确的 ID。

但是,当我尝试分配 ID 时,Android Studio 将其标记为错误:

view.setId(123);

ERROR: Expected resource of type id

【问题讨论】:

    标签: android android-layout android-studio


    【解决方案1】:

    找到了:

    view.setId(View.generateViewId());
    

    【讨论】:

    • 你在哪里设置“123”为id?
    • 我不需要123,我只需要一个与现有ID不冲突的新ID。
    • generateViewId() 需要 API 级别 17。
    • 那么你以后如何使用该 ID?
    • view.setId(..) 将视图的 ID 设置为您通过调用 View.generateViewId() 获得的值。就是这样,您使用它来将其分配给您的视图。
    【解决方案2】:

    你有两个选择:

    1. 这不是编译器错误。这只是编辑器验证错误,因为这不是处理 Id 的常用方法。所以编译运行没有问题
    2. 使用类型为“id”的预定义 ID 列表作为接受的答案https://stackoverflow.com/a/8937477/1657333,这样编辑器会很高兴。

    【讨论】:

      【解决方案3】:

      在 Android Studio 中单击与此“错误”一致的灯泡。并在第一个子菜单中选择“禁用检查”。

      【讨论】:

        【解决方案4】:

        正如其他人所说,在这种情况下您不应该直接使用整数。在一些非常罕见的情况下,您可能需要这样做或通常禁止验证警告。如果是这样,那么您需要查看Lint。 在 Android Studio 中,您可以单击代码行左侧的红色灯泡。这将显示一个包含抑制方法列表的上下文菜单。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-05
          • 2012-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多