在线咨询
微信咨询
服务热线
服务热线:15639912513
TOP
当前位置:
首页 > 新闻中心> 安卓课堂>android实现篮球赛记分器实例

android实现篮球赛记分器实例

发布时间:2020-02-13 浏览:3616次

郑州app开发实现篮球赛记分器。下面是java代码:

下面是MainActivity.java

package cn.xhhkj.cao;


import androidx.appcompat.app.AppCompatActivity;

import androidx.databinding.DataBindingUtil;

import androidx.lifecycle.ViewModelProviders;


import android.os.Bundle;


import cn.xhhkj.cao.databinding.ActivityMainBinding;


public class MainActivity extends AppCompatActivity {

    MyViewModel myViewModel;

    ActivityMainBinding binding;


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

    }

}

下面是MyViewModel.java

package cn.xhhkj.cao;


import androidx.lifecycle.MutableLiveData;

import androidx.lifecycle.ViewModel;


public class MyViewModel extends ViewModel {

       private MutableLiveDataaTeamScore;

       private MutableLiveDatabTeamScore;

       private int aBack,bBack;

       public MutableLiveDatagetaTeamScore(){

           if (aTeamScore== null){

               aTeamScore=new MutableLiveData<>();

               aTeamScore.setValue(0);

           }

           return aTeamScore;

       }

    public MutableLiveDatagetbTeamScore(){

        if (bTeamScore== null){

            bTeamScore=new MutableLiveData<>();

            bTeamScore.setValue(0);

        }

        return bTeamScore;

    }

    public void aTeamAdd(int p){

           aBack=aTeamScore.getValue();

           bBack=bTeamScore.getValue();

          aTeamScore.setValue(aTeamScore.getValue()+p);

    }

    public void bTeamAdd(int p){

        aBack=aTeamScore.getValue();

        bBack=bTeamScore.getValue();

        bTeamScore.setValue(bTeamScore.getValue()+p);

    }

    public void reset(){

        aBack=aTeamScore.getValue();

        bBack=bTeamScore.getValue();

           aTeamScore.setValue(0);

           bTeamScore.setValue(0);

    }

    public void undo(){

        aTeamScore.setValue(aBack);

        bTeamScore.setValue(bBack);


    }

}

布局代码如下

{?xml version="1.0" encoding="utf-8"?}

{layout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"}


    {data}

            {variable

                name="data"

                type="cn.xhhkj.cao.MyViewModel" /}

    {/data}


    {androidx.constraintlayout.widget.ConstraintLayout

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        tools:context=".MainActivity"}



        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="44dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline2"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="157dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline3"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="269dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline4"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="386dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline5"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="502dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline6"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_begin="604dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline7"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="horizontal"

            app:layout_constraintGuide_end="39dp" /}


        {androidx.constraintlayout.widget.Guideline

            android:id="@+id/guideline8"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:orientation="vertical"

            app:layout_constraintGuide_begin="205dp" /}


        {TextView

            android:id="@+id/TeamA"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/teama"

            android:textSize="14sp"

            app:layout_constraintBottom_toTopOf="@+id/guideline2"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline" /}


        {TextView

            android:id="@+id/textView4"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/teamb"

            android:textSize="14sp"

            app:layout_constraintBottom_toTopOf="@+id/guideline2"

            app:layout_constraintEnd_toEndOf="parent"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline" /}


        {TextView

            android:id="@+id/textView5"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@{String.valueOf(data.getaTeamScore())}"

            android:textSize="24sp"

            app:layout_constraintBottom_toTopOf="@+id/guideline3"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline2" /}


        {TextView

            android:id="@+id/textView7"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@{String.valueOf(data.getbTeamScore)}"

            android:textSize="24sp"

            app:layout_constraintBottom_toTopOf="@+id/guideline3"

            app:layout_constraintEnd_toEndOf="parent"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline2" /}


        {Button

            android:id="@+id/button2"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorAccent"

            android:text="@string/_1"

            android:onClick="@{()-}data.aTeamAdd(1)}"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline4"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline3" /}


        {Button

            android:id="@+id/button3"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorPrimary"

            android:text="@string/b_1"

            android:onClick="@{()-}data.bTeamAdd(1)}"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline4"

            app:layout_constraintEnd_toEndOf="parent"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline3" /}


        {Button

            android:id="@+id/button4"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorAccent"

            android:text="@string/a_2"

            android:onClick="@{()-}data.aTeamAdd(2)}"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline5"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline4" /}


        {Button

            android:id="@+id/button5"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorPrimary"

            android:text="@string/_2"

            android:onClick="@{()-}data.bTeamAdd(2)}"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline5"

            app:layout_constraintEnd_toEndOf="parent"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline4" /}


        {Button

            android:id="@+id/button6"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorAccent"

            android:onClick="@{()-}data.aTeamAdd(3)}"

            android:text="@string/a_3"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline6"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline5" /}


        {Button

            android:id="@+id/button7"

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:background="@color/colorPrimary"

            android:onClick="@{()-}data.bTeamAdd(3)}"

            android:text="@string/_3"

            android:textColor="@android:color/background_light"

            app:layout_constraintBottom_toTopOf="@+id/guideline6"

            app:layout_constraintEnd_toEndOf="parent"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline5" /}


        {ImageButton

            android:id="@+id/imageButton2"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:contentDescription="@string/undo"

            android:onClick="@{()-}data.undo()}"

            app:layout_constraintBottom_toTopOf="@+id/guideline7"

            app:layout_constraintEnd_toStartOf="@+id/guideline8"

            app:layout_constraintStart_toStartOf="parent"

            app:layout_constraintTop_toTopOf="@+id/guideline6"

            app:srcCompat="@android:drawable/ic_media_rew" /}


        {ImageButton

            android:id="@+id/imageButton3"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:contentDescription="@string/resert"

            app:layout_constraintBottom_toTopOf="@+id/guideline7"

            app:layout_constraintEnd_toEndOf="parent"

            android:onClick="@{()-}data.reset()}"

            app:layout_constraintHorizontal_bias="0.466"

            app:layout_constraintStart_toStartOf="@+id/guideline8"

            app:layout_constraintTop_toTopOf="@+id/guideline6"

            app:srcCompat="@android:drawable/ic_media_ff" /}


    {/androidx.constraintlayout.widget.ConstraintLayout}

{/layout}

 总结下,这个计分器虽然简单,但里面已经把数据的处理放到单独的文件里面,而不是入口文件,入口文件非常简略,这样方便后期的维护。

 


TAG
3616
该内容对我有帮助