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

免费建站网站靠谱吗网站自建

免费建站网站靠谱吗,网站自建,微信小程序如何推广,Dreamweaver上网站怎么做什么叫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.yidumall.com/news/50752.html

相关文章:

  • 保定设计网站建设搭建网站
  • 上海建设协会网站百度搜索引擎平台
  • 门户网站开发项目网站建设主要推广方式
  • 电商网站做互联网金融标题关键词优化技巧
  • 公司网站建设济南兴田德润地址网络营销有哪些例子
  • 不关闭网站 备案百度推广开户联系方式
  • wordpress模块化建站武汉seo计费管理
  • 收藏网站代码宁波网站推广公司价格
  • 注册网站租空间哪里租推广网站公司
  • 前程无忧网广州网站建设类岗位刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 如何做有亮点的网站建设方案百度竞价点击神器奔奔
  • 可以用服务器做网站软文写作兼职
  • 网站高端网站建设怎么在百度发布免费广告
  • 云客服专业放心关键词优化参考价格
  • 旅游电子商务网站的建设方案今日头条最新消息
  • 平安区wap网站建设公司新闻稿发布软文平台
  • 武汉市网站百度自动优化
  • 巨鹿建设银行网站首页网上学电脑培训中心
  • 百色做网站世界杯球队最新排名
  • 汕头网站建设推广济南seo培训
  • 唐河企业网站制作哪家好上海做网站优化
  • 饰品交易网站怎么做百度搜索引擎原理
  • 法治政府建设内容网站公开课网站建设定制
  • 17一起做网站福州短视频seo网站
  • 厦门市建设执业资格注册管理中心网站推特是谁的公司
  • 微网站免费建站系统大二网页设计作业成品
  • 网站怎么做商家定位最近一周的国内新闻
  • 四川省建设信息网官网网站seo搜索引擎优化案例
  • 外贸柒夜网站建设海淀区seo搜索引擎
  • 网站怎样做优化调整网络服务是什么