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)
        }
    }
    
  • 相关阅读:
    java基础知识(一)- 数据类型
    Java基础知识-去重
    java基础知识-冒泡排序
    Java排序方法sort的使用详解
    Java面试题-字符串操作
    Map.Entry遍历Map
    Java中String的用法
    Java循环控制语句-switch
    API文档打开显示'已取消到该网页的导航'的解决方法
    CentOS6.5 安装snort
  • 原文地址:https://www.cnblogs.com/ajanuw/p/11890510.html
Copyright © 2011-2022 走看看