Android: View.getTag / setTag и IllegalArgumentException - PullRequest
14 голосов
/ 12 марта 2010

Да, я знаю, что вам нужен уникальный идентификатор ресурса при вызове версии этих функций, для которой требуется ключ, но я не могу понять, как создать идентификатор ресурса, который можно использовать таким образом. Последняя переменная в моем классе не будет работать, и ни одно из них не будет жестко закодированным значением. Оба бросили исключение IllegalArgumentException. Так что дает, как вы используете эти методы?

Spara

Ответы [ 3 ]

44 голосов
/ 12 марта 2010

Чтобы создать идентификатор ресурса, который можно использовать идентично тем, которые вы установили в XML (с @+id), добавьте

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

в XML в res/values/.

14 голосов
/ 12 марта 2010

С Ага :

Указанный ключ должен быть идентификатором , объявленным в ресурсах приложения, чтобы обеспечить его уникальность.

Так что вы не можете просто создать значения и поместить их в локальную переменную.

Каждый создаваемый вами ресурс, будь то строка (R.string.*), макет (R.layout.*) или отдельный View (R.id.*), может иметь идентификатор. Это то, что вы уже должны делать.

Если вам нужно хранить несколько объектов против одного View, тогда вам нужно использовать вариант R.id в качестве ключа, например someView.setKey(R.id.my_key_1, someObject).

0 голосов
/ 30 сентября 2016

Вы можете использовать этот код:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
  <item name="TAG_ONLINE_ID" type="id"/>
</resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...