android 监听int变量改变
时间: 2023-07-22 07:22:30 浏览: 49
在 Android 中,您可以使用 `ObservableInt` 类来监听 `int` 变量的改变。
首先在您的项目中添加以下依赖:
```groovy
implementation 'androidx.databinding:databinding-runtime:4.1.0'
```
然后,您可以在您的代码中创建一个 `ObservableInt` 对象:
```java
ObservableInt myInt = new ObservableInt(0);
```
这将创建一个初始值为 0 的 `ObservableInt` 对象。现在,当您更新 `myInt` 变量的值时,您需要调用它的 `set()` 方法:
```java
myInt.set(10);
```
接下来,您需要在您的布局文件中使用 Data Binding 来绑定 `myInt` 变量。您可以使用 `<layout>` 标签来包含您的布局,并使用 `<data>` 标签来定义数据绑定变量:
```xml
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="androidx.databinding.ObservableInt" />
<variable
name="myVariable"
type="ObservableInt" />
</data>
...
<!-- 在这里使用 myVariable 变量 -->
...
</layout>
```
现在,您可以在布局中使用 `myVariable` 变量,例如:
```xml
<TextView
android:text="@{String.valueOf(myVariable)}"
... />
```
最后,您需要在您的代码中监听 `myInt` 变量的改变。您可以添加一个 `OnPropertyChangedCallback` 对象来监听 `myInt` 变量的改变:
```java
myInt.addOnPropertyChangedCallback(new OnPropertyChangedCallback() {
@Override
public void onPropertyChanged(Observable sender, int propertyId) {
// 当 myInt 变量改变时,执行这里的代码
}
});
```
现在,每当您更新 `myInt` 变量的值时,`onPropertyChanged()` 方法将被调用,您可以在该方法中执行您需要的操作。