本节主要说Collection的字符串数组、List、SparseArray、Map的绑定。先看看xml的布局。
1 <layout xmlns:android="http://schemas.android.com/apk/res/android"> 2 3 <data class="CollectionsBinding"> 4 <import type="java.util.Map" /> 5 <import type="java.util.List" /> 6 <import type="android.util.SparseArray" /> 7 8 <variable name="list" type="List<String>" /> 9 <variable name="sparse" type="SparseArray<String>"/> 10 <variable name="map" type="Map<String, String>"/> 11 <variable name="index" type="int" /> 12 <variable name="key" type="String" /> 13 </data> 14 15 <LinearLayout 16 android:layout_width="match_parent" 17 android:layout_height="match_parent" 18 android:orientation="vertical" 19 android:paddingBottom="@dimen/activity_vertical_margin" 20 android:paddingLeft="@dimen/activity_horizontal_margin" 21 android:paddingRight="@dimen/activity_horizontal_margin" 22 android:paddingTop="@dimen/activity_vertical_margin"> 23 24 <TextView 25 android:layout_width="wrap_content" 26 android:layout_height="wrap_content" 27 android:textStyle="bold" 28 android:text="list[index]:" /> 29 <TextView 30 android:text="@{list[index]}" 31 android:layout_width="wrap_content" 32 android:layout_height="wrap_content" /> 33 34 <TextView 35 android:layout_width="wrap_content" 36 android:layout_height="wrap_content" 37 android:textStyle="bold" 38 android:text="sparse[index]:" /> 39 <TextView 40 android:text="@{sparse[index]}" 41 android:layout_width="wrap_content" 42 android:layout_height="wrap_content" /> 43 44 <TextView 45 android:layout_width="wrap_content" 46 android:layout_height="wrap_content" 47 android:textStyle="bold" 48 android:text="map[key]:" /> 49 <TextView 50 android:text="@{map[key]}" 51 android:layout_width="wrap_content" 52 android:layout_height="wrap_content" /> 53 54 <View 55 android:layout_marginTop="10dp" 56 android:layout_marginBottom="10dp" 57 android:layout_width="match_parent" 58 android:layout_height="1dp" 59 android:background="@android:color/black" /> 60 61 <TextView 62 android:text='map["firstName"]' 63 android:textStyle="bold" 64 android:layout_width="wrap_content" 65 android:layout_height="wrap_content" /> 66 <TextView 67 android:text='@{map["firstName"]}' 68 android:layout_width="wrap_content" 69 android:layout_height="wrap_content" /> 70 71 <TextView 72 android:text="map[`firstName`]" 73 android:textStyle="bold" 74 android:layout_width="wrap_content" 75 android:layout_height="wrap_content" /> 76 <TextView 77 android:text="@{map[`firstName`]}" 78 android:layout_width="wrap_content" 79 android:layout_height="wrap_content" /> 80 81 <TextView 82 android:text="map[&quot;firstName&quot;]" 83 android:textStyle="bold" 84 android:layout_width="wrap_content" 85 android:layout_height="wrap_content" /> 86 <TextView 87 android:text="@{map["firstName"]}" 88 android:layout_width="wrap_content" 89 android:layout_height="wrap_content" /> 90 91 </LinearLayout> 92 93 </layout>
首先在<data>导入Collection的类型。<是< 的转义符。获取值的时候使用@{ map[key] }
在binding设置值。
binding.setIndex(index);
binding.setKey(key);
binding.setList(list);
binding.setSparse(sparse);
binding.setMap(map);