java string转number_DataBinding的简单使用(java/kotlin)
效果:
一 依赖
implementation ‘com.google.android.material:material:1.0.0’
implementation ‘androidx.lifecycle:lifecycle-extensions:2.2.0’
二 启用
在build.gradle(app)中的testInstrumentationRunner上面添加一句
dataBinding.enabled= true
三 ViewModel
java:
private MutableLiveData<Integer> number;public MutableLiveData<Integer> getNumber() {if (number == null) {number = new MutableLiveData<>();number.setValue(0);}return number;}public void changednumber(Int newnumber) {number.setValue(number.getValue()+newnumber);}
kotlin:
private val _number:MutableLiveData<Int> by lazy { MutableLiveData<Int>(0) }//初始值为0var number=_numberfun changednumber(a:Int){_number.value= _number.value?.plus(a)}
四 xml绑定
主要内容:
<data><variablename="vm"type="com.example.mutablelivedata.MyViewModel" /></data>android:text="@{String.valueOf(vm.number)}"android:onClick="@{()->vm.changednumber(5)}"android:progress="@{vm.number}"
全部:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"><data><variablename="vm"type="com.example.kotlinmutablelivedata.MyViewModel" /></data><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/textone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@{String.valueOf(vm.number)}"android:textSize="30sp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="+5"android:onClick="@{()->vm.changednumber(5)}"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /><SeekBarandroid:id="@+id/seekBar"android:progress="@{vm.number}"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginBottom="32dp"android:max="15"app:layout_constraintBottom_toTopOf="@+id/textone"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
</layout>
五 活动中启用:
java:
binding = DataBindingUtil.setContentView(this,R.layout.activity_main);myViewModel =new ViewModelProvider(this).get(MyViewModel.class);binding.setVm(myViewModel);binding.setLifecycleOwner(this);
kotlin:
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)val binding: ActivityMainBinding =DataBindingUtil.setContentView(this, R.layout.activity_main)binding.apply {vm = viewModel //设定对象lifecycleOwner = this@MainActivity //定义被观察者}
文章来源
java string转number_DataBinding的简单使用(java/kotlin)相关推荐
- java类成员初始化_简单了解Java类成员初始化顺序
这篇文章主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类中包含7中成员: 1.静态变量 static 2 ...
- java应用开发_开发简单的Java应用
第一章 开发简单的Java应用 1.Java语言的技术分类 (1)JavaSE:标准版,开发桌面应用 (2)JavaEE:企业版,Web应用 (3)JavaME:小型版,嵌入式 2.如何开发和运行Ja ...
- java string查找_查找输出程序(Java String类)
java string查找 Program 1 程序1 public class iHelp {public static void main (String[] args) {System.out. ...
- java完成九宫格数独_简单实现java数独游戏
本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下 打算把javaFx需要的组件装好以后直接用javaFx的,但似乎eclipse的版本不对,安装了也不能用... 数独代码是在之 ...
- Java抽号系统_简单实现java抽奖系统
简单实现java抽奖系统 发布于 2020-3-11| 复制链接 摘记: 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下用户信息类 ```java /* * 用户信息类 * 1. ...
- java 序列化 例子_一个简单的Java序列化的例子
简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对 ...
- java的同步关键字_简单了解Java synchronized关键字同步
简单了解Java synchronized关键字同步 发布于 2021-1-13| 复制链接 摘记: synchronized synchronized可以用来同步块,同步方法.同步块可以用来更精确 ...
- java string的作用_浅谈java String不可变的好处
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable, C ...
- java笔试题_一道简单的 Java 笔试题,但值得很多人反思
专注于Java领域优质技术,欢迎关注 作者:匿蟒 前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问 ...
- java string改变的影响_为什么Java的string类要设成immutable(不可变的)
最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...
最新文章
- Windows Phone 7 Tip (13) -- 如何搜集应用使用数据
- 执行计划 分析一条sql语句的效率 mysql_mysql的SQL语句执行计划分析:EXPLAIN
- 城市大数据:内涵、服务架构与实施路径
- php将值作为数组,php – 如何将CSV解析为数组,并将第一个值作为键?
- 最全面的PS快捷键使用指南
- 软考中级网络工程师知识点笔记
- onblur onchange
- Modelsim与ISE联和仿真错误
- java实现置顶功能
- 学习游戏两不误 测机械革命钛钽Plus旗舰游戏本
- 使用阿里云服务器发送邮件
- IT咨询,从问题到主义
- LCD1602显示总结
- IBM TS3100磁带机更换磁带的方法
- 编程实用工具大全(二)(前后端皆可用,不来看看?)
- Windows 找不到文件 ‘chrome‘。请确认文件名是否正确后,再试一次。
- 精选(36) 常见的五种MySQL高可用方案分析
- MODIS数据下载、拼接、转tif
- 欣海关务工作室原创文章——锦囊妙计(八) 对外承包工程
- 如何解决磁盘坏道的问题