Generated binding classes (產生綁定類別)

前言 Data Binding 會產生綁定類別(binding class),用來存取佈局變數(layout's variable)和視圖(View)。 以下描述了如何建立及客製化綁定類別。 綁定類別將佈局變量與佈局中的視圖連結起來,綁定類別的名稱和 package 可以自行定義。所有的綁定類別都繼承自 ViewDataBinding 類別。 每個 layout file 都會有一個對應的綁定類別。預設,類別的名稱會根據佈局文件的名稱,將其轉換為 Pascal 大小寫並添加 Binding。 若 layout 的名稱為 activity_main.xml,則對應的綁定類別為 ActivityMainBinding。 此類別包含佈局屬性(如user variable)到佈局視圖的所有綁定內容,並知道如何為綁定表達式指定值。   Create a binding object 在對佈局進行填充之後,應該快速的創建綁定對象(binding object),以確保在綁定到佈局中具有表達式的視圖之前不會修改視圖層次結構。 將對象綁定到佈局的最常用方法是使用綁定類別上的靜態方法。 可以透過使用綁定類別的 inflate 方法來擴展視圖層次結構並將對象綁定到該層次結構。如下 @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     MyLayoutBinding binding = MyLayoutBinding.inflate(getLayoutInflater());...

Splash Activity

1.編輯 value/styles.xml 加入以下內容 <resources> ... <style name="AppTheme.Launcher"> <item name="android:windowBackground">@drawable/launch_screen</item> <!-- Optional, on Android 5+ you can modify the colorPrimaryDark color to match the windowBackground color for further branding--> <!-- <item name="colorPrimaryDark">@android:color/white</item> --> </style> ... </resources> 其中 @drawable/launch_screen 目前還沒有,下一步製作。 2.在 drawable 新增 launch_screen.xml,內容如下 <?xml version="1.0" encoding="utf-8"?> <!-- The android:opacity="opaque" line — this is critical in preventing a flash of black as your theme transitions. --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"...

work with observable data objects (使用可觀察數據對象) (Data Binding)

前言 可觀察性(Observability)是指一個物件具有當其數據發生變化時通知其他元件的能力。 Data Binding Library讓物件,欄位,集合具有可被觀察的能力 任何的 POJO 都可以使用於 Data Binding,但修改該物件時並不會讓 UI 也跟著更新。 Data Binding 可為數據對象(data object)提供在其數據更改時通知其他對象(稱為偵聽器)的能力。 可觀察類別(observable class)有3種類型,objects,fields,collections 當上列3種可觀察類別的物件綁定了 UI,且物件的屬性(property)發生變化時,UI 將會自動更新。   Observable fields 因為去建立實作 Observable 介面的類別需要一些額外工作,因此若開發者僅有少量的屬性其實是不值得的,在這種情況下可以使用一般性可觀察類別,如下 ObservableBoolean ObservableByte ObservableChar ObservableShort ObservableInt ObservableLong ObservableFloat ObservableDouble ObservableParcelable         Observable fields 是具有單一欄位的自包含可觀察物件,使用方式為建立一個 public final 屬性,如下 private static class...

Layouts and binding expressions (佈局和綁定表達式)

Layouts and binding expressions 1.簡介 表達式語言(expression language)允許開發者編寫處理視圖調度事件的表達式。 Data Binding Library 會自動生成視圖與數據對象綁定所需的類別(綁定類別)(binding class)。 數據綁定佈局文件(data binding layout files)和一般佈局文件不同。基本上會以 layout 標籤開頭,後面跟著 data 元素和 view 的元件。這個 view 元件代表非綁定部分的根節點。如下範例所示 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android">    <data>        <variable name="user" type="com.example.User"/>    </data>    <LinearLayout        android:orientation="vertical"        android:layout_width="match_parent"        android:layout_height="match_parent">...

finaldb 和 Serializable 合併使用問題

問題描述: 若有個物件想透過 finalDB 儲存但又實作了 Serializable 介面。 當去存取該物件時,會出現"serialVersionUID has type long, got null" 相關問題。 發生問題的 class 如下 @Table(name = "GoodItem") public class GoodItem implements Serializable{ private static final long serialVersionUID = -6588468312284378785L; @Id private String id; ...   解決方法: 將 serialVersionUID 加上  @Transient 註解來解決,如下 @Table(name = "GoodItem") public class GoodItem implements Serializable{ @Transient private static final long serialVersionUID = -6588468312284378785L; @Id private String id; ...     Orignal From: finaldb 和 Serializable 合併使用問題...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews