Android 两个版本比较大小

我们是一位一位的比较 如:9.0.10.331

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:minHeight="50dp"
        android:text="对版本9.0.10.331版本进行对比"
        android:textColor="@android:color/holo_red_light"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/et_compare"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:background="@color/design_default_color_secondary"
        android:hint="请输入最新比较版本比如:9.0.10.331"
        android:minHeight="50dp"
        android:paddingStart="15dp"
        android:paddingEnd="14dp"
        android:textColor="@color/black"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/btn_compare"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="50dp"
        android:background="@color/design_default_color_secondary_variant"
        android:layout_marginTop="12dp"
        android:layout_margin="12dp"
        android:textSize="24sp"
        android:text="比较"
        android:gravity="center"
        android:textColor="@color/white"/>


    <TextView
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:gravity="center_vertical"
        android:minHeight="50dp"
        android:padding="8dp"
        android:text="与9.0.10.331版本进行对比结果(小于这个版本返回true,反之false):"
        android:textColor="@android:color/holo_red_light"
        android:textSize="20sp" />

</LinearLayout>

二、Activity

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.chinasoftnc.zdm.MainActivity;
import com.chinasoftnc.zdm.R;

public class CompareVersionActivity extends AppCompatActivity {

    private EditText et_compare;
    private TextView tv_result;
    private TextView btn_compare;
    private String compare_version = "9.0.10.331";
    private String[] compareList;
    private String[] child;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_compare_version);
        initView();
        initDate();
    }

    public void initDate() {
        btn_compare.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onClick(View v) {
                String compareCont = et_compare.getText().toString().trim();
                if (!TextUtils.isEmpty(compareCont)) {
                    child = compare_version.split("\\.");
                    compareList = compareCont.split("\\.");
                    boolean compareResult = compareTo(compareList, child);
                    tv_result.setText("与9.0.10.331版本进行对比结果(小于这个版本返回true,反之false):" + compareResult);
                } else {
                    Toast.makeText(CompareVersionActivity.this, "请输入对你的版本号", Toast.LENGTH_SHORT).show();
                }
            }
        });

    }

    /**
     * 两个版本的对比,一个一个对比
     *
     * @param child       条件对比版本的数组
     * @param compareList 输入的对比版本数组
     *                    输入的版本比9.0.10.331小的返回true 反之false
     */
    public boolean compareTo(String[] compareList, String[] child) {
        for (int i = 0; i < child.length; i++) {
            Log.e("compareList" + i, " = " + compareList[i]);
            Log.e("child" + i, " = " + child[i]);
            if (Integer.parseInt(compareList[i]) > Integer.parseInt(child[i])) {
                return false;
            } else if (Integer.parseInt(compareList[i]) < Integer.parseInt(child[i])) {
                return true;
            } else if (Integer.parseInt(compareList[i]) == Integer.parseInt(child[i])) {

            }
        }
        return false;
    }

    public void initView() {
        et_compare = findViewById(R.id.et_compare);
        tv_result = findViewById(R.id.tv_result);
        btn_compare = findViewById(R.id.btn_compare);
    }

}

切记现在比较的输入格式是:9.0.10.331,其他不同位数的同理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值