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 }