Использование ресурсов атрибутов (? Attr /) в привязке макета?

if (index < 0 || index >= array.length) {
    // Don't use this index. This is out of bounds (borders, limits, whatever).
} else {
    // Yes, you can safely use this index. The index is present in the array.
    Object element = array[index];
}

См. также:


Обновление: в соответствии с вашим фрагментом кода,

for(int i = 0; i<=name.length; i++) {

Индекс содержит длину массива. Это за гранью. Вы должны заменить <= на <.

for(int i = 0; i < name.length; i++) {
25
задан hidro 29 December 2015 в 16:47
поделиться

1 ответ

Использование BindingAdapter

А BindingAdapter позволяет Вам управлять и делает более включенную логику на Ваших данных прежде, чем применить его к Представлению. Для использования BindingAdapter сначала создайте статический метод в коде, который связывается или со стандартным атрибутом Android или с пользовательским.

я создаю пользовательский атрибут, здесь названный characterBackground:

@BindingAdapter({"characterBackground"})
public static void characterBackground(TextView textView, AdventureTimeCharacters character) {
     textView.setBackgroundColor(ContextCompat.getColor(textView.getContext(), character.getColour()));
}

можно затем использовать этот BindingAdapter в TextView:

app:characterBackground="@{character}"

не забывают добавлять пространство имен приложения! Studio Android может добавить это для Вас. Просто введите в appNs, и он автоматически заполнит.

Это решение работы, но немного слишком включен. И Вы сказали, что привязка данных легка..

0
ответ дан 28 November 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: