代码之家  ›  专栏  ›  技术社区  ›  Sparafusile

android:view.gettag/settag和illegalargumentexception

  •  14
  • Sparafusile  · 技术社区  · 14 年前

    是的,我知道在调用需要键的这些函数的版本时,您需要一个唯一的资源ID,但我一辈子都无法弄清楚如何创建一个可以用这种方式使用的资源ID。我班上的最后一个变量不起作用,硬编码的值也不起作用。两者都引发了IllegalArgumentException。那么,你怎么使用这些方法呢?

    斯巴拉

    3 回复  |  直到 8 年前
        1
  •  14
  •   Christopher Orr    14 年前

    the Javadoc :

    指定的密钥应为ID 在资源中声明 以确保它是唯一的。

    因此,您不能只是组成值并将它们放在局部变量中。

    您创建的每个资源是否为字符串( R.string.* )或布局( R.layout.* )或者一个人 View ( R.id.* )可以有一个ID。这是您必须已经做的事情。

    如果需要针对单个对象存储多个对象 视图 ,然后您需要使用 R.id 变量作为一个键,比如 someView.setKey(R.id.my_key_1, someObject) .

        2
  •  44
  •   Dimitar Dimitrov    14 年前

    创建资源ID,该ID可以与在XML中设置的资源ID相同(使用 @+id )

    <resources>
        <item type="id" name="myId"/>
    </resources>
    

    在XML中 res/values/ .

        3
  •  0
  •   Ahmad Aghazadeh    8 年前

    您可以使用此代码:

    <resources xmlns:android="http://schemas.android.com/apk/res/android">
      <item name="TAG_ONLINE_ID" type="id"/>
    </resources>