Android JetPack组件之ViewModel的使用详解

Android JetPack组件之ViewModel的使用详解,第1张

Android JetPack组件之ViewModel的使用详解

前言: 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的简单使用,有不当之处,可以指出~

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5434219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存