DataBinding設置集合數據,如Map和List

之前的文章介紹了DataBinding最基本的使用,[DataBinding的簡單使用]http://www.lxweimin.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.lxweimin.com/p/da4e72a9885c

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,466評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,981評論 19 139
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 3,776評論 0 7
  • 清明時節,依舊是晴忽不定的日子,天空飄著閑散的雨滴,守著小小的房間,躲在棉花糖的被子里試著呼吸甘甜,翻去年的日志 ...
    echo瓷閱讀 214評論 0 0
  • 人們很少扶,欄桿看似可有可無。若沒有欄桿,會不敢上樓不敢過橋。欄桿沒安在物體上 安在人心里 安心
    雷的無閱讀 375評論 0 0