笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述Android Studio 之 ViewModel (转)相关的知识,希望能为你提供帮助。
ViewModel
是 JetPack
类库中的一个功能,可以保存控件的状态 ,在整个Activity
生命周期中,状态不会失效
如屏幕翻转时,状态可保留,不会失效!
与 LiveData
配合使用!
配合 Room 进行 Sqlite
操作数据库
文章图片
新建 ViewModel 类,在MainActivity类的父结点上右击,点创建java类
注意:Superclass 中要选 ViewModel
文章图片
1. ViewModel 类中放一个public 的整数变量
文章图片
2. 在MainActivity类中创建一个 MyViewModel 实例,
注意:ViewModelProviders 这个对象,需要在 build.gradle中的 dependencies 结点中, 添加引用 implementation ‘androidx.lifecycle:lifecycle-extensions:2.1.0‘
【Android Studio 之 ViewModel (转)】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package
com.example.viewmodel1;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.TextView;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.lifecycle.ViewModelProviders;
public
class
MainActivity
extends
AppCompatActivity {
MyViewModole myViewModole;
TextView textView;
Button button1;
Button button2;
String TAG =
"myTag" ;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button);
button2 = findViewById(R.id.button2);
textView = findViewById(R.id.textView);
myViewModole = ViewModelProviders.of( this ).get(MyViewModole. class );
//实例化
textView.setText(String.valueOf(myViewModole.numberAnInt));
//初始时,给它赋值
button1.setOnClickListener( new
View.OnClickListener() {
@Override
public
void
onClick(View view) {
myViewModole.numberAnInt++;
textView.setText(String.valueOf(myViewModole.numberAnInt));
}
});
button2.setOnClickListener( new
View.OnClickListener() {
@Override
public
void
onClick(View view) {
myViewModole.numberAnInt +=
2 ;
textView.setText(String.valueOf(myViewModole.numberAnInt));
}
});
}
} |
推荐阅读
- 安卓手机微信中清除页面缓存的方法
- Android9.0 Camera2 横屏问题修改记录
- 如何设计 Web App 应用架构(「两分钟了解 IOING」)
- android studio真机测试页面跳转时自动弹出软件,报错null exception解决方案
- 使用HBuilder开发移动APP
- How to locate elements/ Object locators for Android devices
- Android Jetpack -- ViewModel篇
- 使用Ansible Playbook自动更新Elastic Stack
- 使用HorusLP构建优化算法