Intereting Posts
Как установить ориентацию ContentPage в Xamarin.Forms Android: выполнение не выполнено для задачи ': app: processDebugResources' Импортировать swagger в существующий проект в Android Studio Настроить разрешение на Android Принудительный ввод цифр при просмотре веб-сайта на Android и iOS Пакета ошибок android.support.design.widget не существует Распознавание рукописного текста для изолированного арабского языка Как открыть список доступных звуков уведомлений на Android Android-виджет с отображением ListView Загрузка только загрузочных просмотров Как переключить репозитории в Android Studio? Android: как синхронизировать запросы с помощью болтов с Parse.com? Создание приложения для Android, которое создаст удаленный доступ между телефоном и ПК и сможет обмениваться файлами Выберите часть изображения в ImageView и найдите конечные точки выбранного прямоугольника Обновлен NDK до r9c из r8e и получена ошибка «Нет правила для создания цели» Android: Bluetooth не смог получить номер порта

Как установить целочисленный тег в виджет в файле макета 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" /> 

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

В 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