前言: ViewModel的简单介绍
介绍:ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转,更换系统语言等配置更改后继续留存。
接下来我们通过一个简单的例子,来了解和使用ViewModel
一、首先引入ViewModel的相关依赖
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
二、布局文件activity_view_model.xml
三、创建MyViewModel类继承于ViewModel
public class MyViewModel extends ViewModel { public int number=0; }
四、在ViewModelActivity进行相应的功能编写
public class ViewModelActivity extends AppCompatActivity { private TextView tv_figure; private Button btn_add1, btn_add2; private MyViewModel myViewModel; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_model); tv_figure = findViewById(R.id.tv_figure); btn_add1 = findViewById(R.id.btn_add1); btn_add2 = findViewById(R.id.btn_add2); //这个获取MyViewModel对象的方法已经被废弃了 // myViewModel = ViewModelProviders.of(this).get(MyViewModel.class); //创建MyViewModel对象 myViewModel = new ViewModelProvider(this).get(MyViewModel.class); tv_figure.setText(String.valueOf(myViewModel.number)); btn_add1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { myViewModel.number++; tv_figure.setText(String.valueOf(myViewModel.number)); } }); btn_add2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { myViewModel.number += 2; tv_figure.setText(String.valueOf(myViewModel.number)); } }); } }
效果演示:
可以看到屏幕进行旋转后,数据依然在,这就是ViewModel的简单使用,有不当之处,可以指出~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)