DataBinding设置集合数据,如Map和List

之前的文章介绍了DataBinding最基本的使用,[DataBinding的简单使用]http://www.jianshu.com/p/6d2c63e86de6。这次主要是DataBinding的如何设置集合数据。

设置集合数据,比如List和Map(这次我们使用的是import的方式导入)

1.在布局中的配置(注意使用泛型的方式)

    <data>

       <import type="java.util.ArrayList" />

       <import type="java.util.Map" />

        <!--集合的定义(<String规定了集合的泛型是String,相当于ArrayList<String>)-->
       <variable
            name="list"
            type="ArrayList&lt;String>" />

        <!--&lt;String,String&gt相当于Map<String,String>-->
        <variable
            name="map"
            type="Map&lt;String,String&gt;" />
    </data>

2.在Activity中添加数据的使用

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //获取binding
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
  
        //Map集合类型的数据
        Map<String, String> map = new HashMap<>();
        map.put("name", "wu");
        map.put("age", "18");
        binding.setMap(map);

        //List集合类型的数据
        ArrayList<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        binding.setList(list);
    }
}

3.在TextView中使用list和map中的数据(注意里面的key的符号)

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!--Map获取值的时候对应的`age`为key-->
        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@{map.get(`age`)}" />

        <!--List获取值的时候对应的1为position-->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tv_name"
            android:layout_centerHorizontal="true"
            android:text="@{list.get(1)}" />
    </RelativeLayout>

下一篇文章DataBinding设置监听http://www.jianshu.com/p/da4e72a9885c

推荐阅读更多精彩内容