我们是一位一位的比较 如: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,其他不同位数的同理