SQLの窓

2015年10月26日


Android の Data Binding における include を使用した画面分割

Android デベロッパーの Data Binding Guide に書かれていますが、bind:user="@{user}" のように variable で指定した変数を引き継ぐだけです。



この記述は、引き継がれた( include された) 画面にも記述して、さらに第三画面を include できます。



注意 : デザイン画面でエラーのようなものが出る場合は、( とりあえず Clean Project を実行して ) 左上の x をクリックして閉じて下さい。( カスタム要素のせいです )


画面全体のソースコード

引き継がれた( include された) 画面
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:bind="http://schemas.android.com/apk/res-auto"
        tools:context=".MainActivity">

    <data>
        <variable
            name="user"
            type="sample.lightbox.androidbind1017.Syain"/>
    </data>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@{user.syozoku}"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:id="@+id/textView3"
            android:layout_margin="4dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@{user.sname}"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:id="@+id/textView4"
            android:layout_margin="4dp"/>

        <NumberPicker
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/numberPicker"/>

        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/spinner"
            android:spinnerMode="dropdown"/>

        <DatePicker
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/datePicker"
            android:datePickerMode="spinner"/>

        <include
            layout="@layout/ex_contents2"
            android:id="@+id/ex2"
            bind:user="@{user}"/>

    </LinearLayout>
</layout>


第三画面
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:bind="http://schemas.android.com/apk/res-auto"
        tools:context=".MainActivity">

    <data>
        <variable
            name="user"
            type="sample.lightbox.androidbind1017.Syain"/>
    </data>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@{user.kj}"
            android:id="@+id/editText2"
            android:background="@drawable/border"
            android:padding="5dp"/>

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TOP"
            android:id="@+id/button4"/>

    </LinearLayout>
</layout>

Data Binding 画面の注意事項

画面定義内は常に英数字・記号を使用する必要があります

現時点では、画面内の文字列に日本語を使用できません。実際使う場合は、初期値を直接書き込む場合とバインド用の変数に使う場合ですが、前者はリソースとして定義して日本語を使わずに参照擦れば動作します。しかし、後者では使え無い場合があります(使える場合もある)。


【Android Studio 2の最新記事】
posted by lightbox at 2015-10-26 10:10 | Android Studio 2 | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり