zoukankan      html  css  js  c++  java
  • Android Kotlin 数据驱动模板

    Android开发人员文档:

    1. 搭建环境build.gradle:app

    apply plugin: "kotlin-kapt"
    
    android {
        ...
        dataBinding {
            enabled = true
        }
    }
    

    2. 使用 layout data绑定你的视图

    <?xml version="1.0" encoding="utf-8"?>
    
    <layout>
        <data>
            <variable name="data" type="com.ajanuw.androiddemo.data.MyData" />
        </data>
        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent" android:orientation="vertical">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="22dp"
                android:text="@{data.name}" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="22dp"
                android:text="@{String.valueOf(data.age)}" />
    
            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:onClick="@{data::onClickFriend}"
                android:text="Button" />
        </LinearLayout>
    </layout>
    

    main.kt

    package com.ajanuw.androiddemo
    
    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import androidx.databinding.DataBindingUtil
    import com.ajanuw.androiddemo.data.MyData
    import com.ajanuw.androiddemo.databinding.ActivityMainBinding
    
    class MainActivity : AppCompatActivity() {
        // 创建绑定类
        private  lateinit var b: ActivityMainBinding
        lateinit var data: MyData
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            b = DataBindingUtil.setContentView(this, R.layout.activity_main)
            data =  MyData()
            b.data = data
        }
    }
    

    myData.kt

    package com.ajanuw.androiddemo.data
    
    import android.R.attr.name
    import android.view.View
    import androidx.databinding.BaseObservable
    import androidx.databinding.Bindable
    import com.ajanuw.androiddemo.BR
    
    
    class MyData() : BaseObservable() {
        @Bindable
        var name = "you name"
    
        @Bindable
        var age = 12
    
        fun onClickFriend(view:View) {
            name = "hello world"
            age = 22
            notifyPropertyChanged(BR._all)
        }
    }
    
  • 相关阅读:
    Python里的目录方法
    PythonFile对象的属性
    Python read和write方法
    Python打开和关闭文件
    Python打印到屏幕_读取键盘输入
    Python包
    Python globals和locals函数_reload函数
    Python dir( )函数
    【C 语言】一元二次方程
    【C语言】已知三角形三边长,求三角形面积
  • 原文地址:https://www.cnblogs.com/ajanuw/p/11890510.html
Copyright © 2011-2022 走看看