android studio viewo,Android Studio 之 ViewModel

ViewModel 是 JetPack 类库中的一个功能,可以保存控件的状态 ,在整个Activity 生命周期中,状态不会失效

如屏幕翻转时,状态可保留,不会失效!

与 LiveData 配合使用!

配合 Room 进行 Sqlite 操作数据库

8baaa0cb1a03c6cb6d5b63fc17e81662.png

新建 ViewModel 类,在MainActivity类的父结点上右击,点创建java类

注意:Superclass 中要选 ViewModel

3ceed6992a2b438dee2e27fd880a227b.png

1. ViewModel 类中放一个public 的整数变量

94e96ad098e6d557c6f46b1aa335c085.png

2. 在MainActivity类中创建一个 MyViewModel 实例,

注意:ViewModelProviders 这个对象,需要在 build.gradle中的 dependencies 结点中, 添加引用  implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'

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));

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值