mvvm计数器java
时间: 2023-08-10 17:36:59 浏览: 102
好的,下面是一个简单的MVVM计数器的Java示例:
首先,我们需要创建一个名为“Counter”的类来表示我们的模型。它应该有一个名为“count”的整数属性,以及一个名为“incrementCount”的方法来增加计数器的值:
```java
public class Counter {
private int count = 0;
public int getCount() {
return count;
}
public void incrementCount() {
count++;
}
}
```
接下来,我们需要创建一个名为“CounterViewModel”的类来表示我们的视图模型。它应该使用LiveData来管理计数器的值,并具有一个名为“incrementCount”的方法来增加计数器的值:
```java
public class CounterViewModel extends ViewModel {
private MutableLiveData<Integer> count = new MutableLiveData<>();
private Counter counter = new Counter();
public CounterViewModel() {
count.setValue(counter.getCount());
}
public LiveData<Integer> getCount() {
return count;
}
public void incrementCount() {
counter.incrementCount();
count.setValue(counter.getCount());
}
}
```
最后,我们需要创建一个名为“MainActivity”的类来表示我们的视图。它应该使用DataBinding来管理界面,并在用户单击按钮时调用视图模型中的“incrementCount”方法:
```java
public class MainActivity extends AppCompatActivity {
private CounterViewModel counterViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
counterViewModel = ViewModelProviders.of(this).get(CounterViewModel.class);
binding.setCounterViewModel(counterViewModel);
binding.setLifecycleOwner(this);
}
}
```
在这个例子中,我们使用了DataBinding来绑定视图和视图模型。我们还使用了ViewModelProviders来获取视图模型的实例,并将其设置为DataBinding的变量。最后,我们将当前活动设置为DataBinding的生命周期所有者,以便LiveData可以在活动销毁时正确清理。
阅读全文