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++) {
Использование 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, и он автоматически заполнит.
Это решение работы, но немного слишком включен. И Вы сказали, что привязка данных легка..