zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Git 命令 stash cherry-pick reset rebase
    【操作系统】不同语言的线程实现机制对比及数据库锁问题
    【数据结构】搜索二叉树(BST)和普通二叉树的序列化与反序列化
    【自制编译器】读书笔记 -- JavaCC使用的JJ文件格式
    leetcode 874 Robot Simulation
    hihocoder 编程挑战赛75
    浪漫主义的起源--以赛亚柏林
    【美团笔试 2018-4-20 】编程题-1 测例100%通过 欧拉函数求解gcd
    【POJ SOJ HDOJ】HDU 2196 Computer 树中的最长路径
    【Java 核心】多线程笔记
  • 原文地址:https://www.cnblogs.com/cxy0210/p/12295056.html
Copyright © 2011-2022 走看看