当前位置: 首页 > news >正文

做单页网站需要做什么的百度网页入口

做单页网站需要做什么的,百度网页入口,网站建设策划方案书下载,合肥网络运营平台开发什么叫databinding 数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。使用数据绑定可以简化 findViewById 。 如何使用 应用模块下 build.gradle 文件中添加 data…

什么叫databinding

数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。使用数据绑定可以简化 findViewById 。

如何使用

应用模块下 build.gradle 文件中添加 dataBinding 元素,如下

dataBinding {enabled = true
}

单向绑定

activity_list

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><variablename="user"type="com.gxx.databinding.data.UserData" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@{user.userName}" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="@{String.valueOf(user.age)}" /></LinearLayout>
</layout>

ListActivity

class ListActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)var binding =DataBindingUtil.setContentView<ActivityListBinding>(this, R.layout.activity_list)binding.lifecycleOwner = thisvar userData = UserData()userData.age = 10userData.userName = "你好"binding.user = userData}
}

 UserData

class UserData {var userName: String? = nullvar age: Int = 0
}

可观察的数据对象

任何 plain-old 对象都可用于数据绑定,但修改对象不会自动使界面更新。通过数据绑定,数据对象可在其数据发生更改时通知其他对象,即监听器,可观察类有三种不同类型:对象、字段和集合。当其中一个可观察数据对象绑定到界面并且该数据对象的属性发生更改时,界面会自动更新。

结合 LiveData 将数据变化通知给界面

ViewModelActivity
class ViewModelActivity : AppCompatActivity() {private lateinit var userViewModel: UserViewModeloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val binding = DataBindingUtil.setContentView<ActivityViewmodelBinding>(this,R.layout.activity_viewmodel)binding.lifecycleOwner = thisuserViewModel = ViewModelProvider(this,ViewModelProvider.NewInstanceFactory()).get(UserViewModel::class.java)binding.viewModel = userViewModel}
}

UserViewModel

class UserViewModel : ViewModel() {val userLiveData = MutableLiveData<UserData>()init {thread {for (x in 1..10) {Log.d("TAG", "服务器给你推送消息啦{叮咚声音}$x")val userData = UserData()//userData.userName.set("接收服务器声音$x")userData.userName = "接收服务器声音$x"userLiveData.postValue(userData)Thread.sleep(2000)}}}
}
class UserData : BaseObservable() {val userName: ObservableField<String> by lazy { ObservableField<String>() }var age: Int = 0
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><variablename="viewModel"type="com.gxx.databinding.viewmodel.UserViewModel" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@={viewModel.userLiveData.userName}" /><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@={viewModel.userLiveData.userName}" /></LinearLayout>
</layout>

http://www.yayakq.cn/news/560498/

相关文章:

  • 网站建设的步骤过程盘锦做网站价格
  • 做网站卖假名牌违法吗网投网站如何建设
  • 嘉兴市南湖区城乡规划建设局网站高端网站建设系统规划
  • 深圳网站运营外包公司平台推广是什么
  • 鸿邑科技 网站建设网站外链建设实例
  • 有哪些网站可以做全屏代码电脑网站生成手机网站
  • 方案图网站第三方做农产品价格数据的网站
  • 网站主要栏目洛阳 网站建设
  • 个人网站吗建设工程合同性质上属于实践合同
  • wordpress5.2.2济南seo外包公司
  • 做瞹瞹网站怎样用apache做网站
  • 网站改版准备上海中高风险地区有哪些
  • 如何注册域名网站wordpress输入命令
  • 飞扬世纪网站建设怎么给网站做开场动画
  • 个人做网站能赚钱吗福田公司简介
  • 设建网站郑州优秀网站建设公司
  • 江西网站设计哪家强汕头食品骏域网站建设
  • 虚拟邮箱注册网站2345浏览器
  • 新乡网站建设服务哪家好简单网站建设优化
  • 网站建设的外文参考文献黄金行情软件下载
  • 设计企业网站流程windows wordpress固定链接
  • 白山网站设计网站 前置审批
  • 手机网站怎么布局织梦物流公司网站模板简洁大气
  • 郑州网站建设时一定需要注意的六点郴州建设网站哪家好
  • 怎么在360自己做网站深圳手机网站制作
  • wordpress网站突然打不开中国商标网官网免费查询入口
  • 湖北交投建设集团网站重视网站商务通
  • 学校网站建设步骤过程兼容最好wordpress主题
  • 公司网站建设模板最专业的网站建设价格
  • 网站建设能否建立国外站wordpress时间插件