Android的Databinding-數據、Map綁定

本節主要說Collection的字符串數組、List、SparseArray、Map的綁定。先看看xml的佈局。java

 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&lt;String>" />
 9         <variable name="sparse" type="SparseArray&lt;String>"/>
10         <variable name="map" type="Map&lt;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[&amp;quot;firstName&amp;quot;]"
83             android:textStyle="bold"
84             android:layout_width="wrap_content"
85             android:layout_height="wrap_content" />
86         <TextView
87             android:text="@{map[&quot;firstName&quot;]}"
88             android:layout_width="wrap_content"
89             android:layout_height="wrap_content" />
90 
91     </LinearLayout>
92 
93 </layout>

 

首先在<data>導入Collection的類型。&lt;是< 的轉義符。獲取值的時候使用@{ map[key] }android

在binding設置值。git

binding.setIndex(index);
binding.setKey(key);
binding.setList(list);
binding.setSparse(sparse);
binding.setMap(map);github

 

本節參考代碼。數組

相關文章
相關標籤/搜索