Intereting Posts

Как установить целочисленный тег в виджет в файле макета xml?

У меня простой макет, но я могу установить только тег string. Как установить целочисленный тег?

<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="1" android:src="@drawable/image" /> 

ОБНОВИТЬ

Я узнал, как установить теги Integer в макете xml. Нам нужно указать целочисленную переменную в любом файле ресурсов xml. Это должно выглядеть так:

Рез / значения / value.xml:

 <?xml version="1.0" encoding="UTF-8"?> <resources> <integer name="int1">15</integer> <integer name="int2">1</integer> </resources> 

И теперь мы можем использовать «@ integer / int1» или «@ integer / int2» в качестве тегов для наших виджетов xml, например:

 <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="@integer/int2" android:src="@drawable/image" /> 

Тем не менее, в моем случае я предпочел установить тег программно 🙂

Solutions Collecting From Web of "Как установить целочисленный тег в виджет в файле макета xml?"

В xml вы можете установить только String. Но в коде вы можете использовать View.setTag(int value); Потому что он принимает объект. Чтобы прочитать значение, вам нужно int value = (Integer)view.getTag(); его в Integer int value = (Integer)view.getTag();

Из авторского редактирования я попытался использовать @integer/int2 чтобы установить тег как целое число, но все же кажется, что getTag() возвращает тег как String (по крайней мере, в Jellybean). Integer.parseInt(String) может преобразовать String в Integer и @integer/int2 может подтвердить, что ваш тег является правильным Integer . Поэтому, если вы хотите поместить Integer в тег через XML, это, вероятно, лучший маршрут. Даунсайд, поскольку он использует parseInt он, вероятно, занимает немного больше времени, чем его хранение в течение всего времени.

Я использовал следующее, чтобы настроить тег в xml и обрабатывать его позже в коде:

 <?xml version="1.0" encoding="UTF-8"?> <resources> <string name="item_tag">1</string> </resources> <!-- TextView with Tag --> <TextView android:id="@+id/item_with_tag" android:tag="@string/item_tag"/> // retrieve the tag int itemTag = Integer.valueOf((String) textView.getTag()); // itemTag == 1 

Поставьте тег для этого представления, содержащий строку, который будет View.getTag() позже с помощью View.getTag() или будет найден с помощью View.findViewWithTag() .

Должно быть строковое значение, используя '\\;' Для '\\uxxxx' символов, таких как '\\n' или '\\uxxxx' для символа юникода.

Для получения дополнительной информации перейдите на android: tag