Android : 篮球记分器app _简单应用

示例图:

Android : 篮球记分器app _简单应用_第1张图片

1.导包 在build.gradle 中 加入

    // 使用androidx版本库
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'

2. 开启dataBinding

android{
    ...

     // 步骤1.开启data binding
    dataBinding {
        enabled = true
    }
    
    ...

}

3.写个类继承 ViewModel

package com.example.mydatabindingtest;

import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

public class MyViewModel extends ViewModel {
    private MutableLiveData redNumb;
    private MutableLiveData greenNumb;

    //回滚 用于记录前面一次的值
    private int redBack,greenBack;
    public MutableLiveData getRedNumb() {
        if (redNumb == null) {
            redNumb = new MutableLiveData<>();
            redNumb.setValue(0);
        }
        return redNumb;
    }

    public MutableLiveData getGreenNumb() {
        if (greenNumb == null) {
            greenNumb = new MutableLiveData<>();
            greenNumb.setValue(0);
        }
        return greenNumb;
    }

    public void redAdd(int num) {
        //添加之前保留之前的值 都记录下
        redBack = redNumb.getValue();
        greenBack = greenNumb.getValue();

        redNumb.setValue(getRedNumb().getValue() + num);
    }


    public void greenAdd(int num) {
        //添加之前保留之前的值 都记录下
        redBack = redNumb.getValue();
        greenBack = greenNumb.getValue();

        greenNumb.setValue(getGreenNumb().getValue() + num);
    }

    //重置
    public void reset(){
        //添加之前保留之前的值
        greenBack = greenNumb.getValue();
        redBack = redNumb.getValue();

        redNumb.setValue(0);
        greenNumb.setValue(0);
    }


    //撤销一次
    public void rollBack(){
        //把记录的值设置到变量中
        redNumb.setValue(redBack);
        greenNumb.setValue(greenBack);
    }
}

4.更改布局 activity_main.xml






    
        
    

    

        

        

5.MainActivity.java

package com.example.mydatabindingtest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.Toast;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.ViewModelProviders;
import com.example.mydatabindingtest.databinding.ActivityMainBinding;


public class MainActivity extends AppCompatActivity {

     MyViewModel myViewModel;
     ActivityMainBinding binding;
    private long exitTime;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this,R.layout.activity_main);

        myViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
        binding.setData(myViewModel);
        binding.setLifecycleOwner(this);
    }

    //返回
    @Override
    public void onBackPressed() {

        if ((System.currentTimeMillis() - exitTime) > 2000) {
            Toast.makeText(getApplicationContext(), "再按一次退出程序",
                    Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
            super.onBackPressed();
        }


    }

}

你可能感兴趣的:(Android,相关,android,笔记)