2.9 初识 jetpack

Android Jetpack 组件

Android Jetpack 组件是库的集合

这些库是为协同工作而构建的,也可以单独采用,同时利用 Kotlin 语言功能帮助提高工作效率。可全部使用,也可混合搭配!

目前的Jetpack组件:

 本次学习是使用 ViewModel 来保存临时数据 解决qpp翻转或其他操作时数据传递的问题。

测试的程序如下:

 

横屏与竖屏的数据一样(没有丢失)

具体操作:在comexampleviewmodeltest 路径创建一个计数的Java文件,并继承自

androidx.lifecycle.ViewModel
1 package com.example.viewmodeltest;
2 
3 import androidx.lifecycle.ViewModel;
4 
5 public class MyViewModel extends ViewModel {
6     public static int number = 0;   //静态变量 
7 
8 }
 1 package com.example.viewmodeltest;
 2 
 3 import android.os.Bundle;
 4 import android.view.View;
 5 import android.widget.Button;
 6 import android.widget.TextView;
 7 
 8 import androidx.appcompat.app.AppCompatActivity;
 9 import androidx.lifecycle.ViewModelProviders;
10 
11 public class MainActivity extends AppCompatActivity {
12     MyViewModel myViewModel;
13     TextView textView;
14     Button button1,button2;
15 
16 
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_main);
21         myViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
22         textView = findViewById(R.id.textView);  //将控件与变量关联
23         textView.setText(String.valueOf(MyViewModel.number));   //读取保存的数据 避免翻转时丢失
24         button1 = findViewById(R.id.button);
25         button2 = findViewById(R.id.button2);
26 
27         button1.setOnClickListener(new View.OnClickListener() {  //+ 1操作
28             @Override
29             public void onClick(View v) {
30                 MyViewModel.number++;
31                 textView.setText(String.valueOf(MyViewModel.number));  //刷新界面,显示操作后的界面
32             }
33         });
34 
35         button2.setOnClickListener(new View.OnClickListener() { // +2 操作
36             @Override
37             public void onClick(View v) {
38                 MyViewModel.number+=2;
39                 textView.setText(String.valueOf(MyViewModel.number)); //刷新界面,显示操作后的界面
40             }
41         });
42 
43     }
44 }
原文地址:https://www.cnblogs.com/cxy0210/p/12295056.html