Android的Databinding-数据、Map绑定

本节主要说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&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] }

在binding设置值。

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

 

本节参考代码。

posted on 2017-08-18 15:13  lee0oo0  阅读(1908)  评论(0编辑  收藏  举报