Android检查文本输入(时间)是否与格式匹配

我有两个文本字段作为输入时间(mm:ss)我如何创建一个支票(与吐司,我知道如何做吐司xD),看看它是否匹配的格式,如果没有,然后传递吐司? 一直在尝试,但没有管理任何东西。

我不知道你是否需要比这更多的东西,但这里是我通过他们的地方:

val time = findViewById<NumberPicker>(R.id.time) as TextView val distance = findViewById<NumberPicker>(R.id.distance) as TextView val pace = findViewById<NumberPicker>(R.id.pace) as TextView calculate.setOnClickListener { when { time.text.isEmpty() && (distance.text.isNotEmpty() && pace.text.isNotEmpty()) -> calculatePace(null, distance.text.toString(), pace.text.toString()) distance.text.isEmpty() && (time.text.isNotEmpty() && pace.text.isNotEmpty()) -> calculatePace(time.text.toString(), null, pace.text.toString()) pace.text.isEmpty() && (time.text.isNotEmpty() && distance.text.isNotEmpty()) -> calculatePace(time.text.toString(), distance.text.toString(), null) else -> { Toast.makeText(this, "Please check all fields", Toast.LENGTH_SHORT).show() } } } 

这是足够的,还是你需要我使用它们的功能? 谢谢

=========

编辑:

我试图创建这个功能,但是我现在怎么把我的编辑内存传递给我呢? 这是否正确?

 fun isTimeValid(time: String?): Boolean { val expression = "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]\$" val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE) val matcher = pattern.matcher(time) return matcher.matches() } 

尝试这个。

  if (!Constants.isStringEmpty(str_time)&&isTimeValid(str_time)){ //// TODO: 10/6/2017 }else { if (Constants.isStringEmpty(str_time)){ edt_email.requestFocus(); Toast.makeText(this, "Enter Time.", Toast.LENGTH_SHORT).show(); } else if(!isTimeValid(str_time)){ edt_email.requestFocus(); Toast.makeText(this, "Enter Valid Time.", Toast.LENGTH_SHORT).show(); } } public static boolean isTimeValid(String time) { boolean isValid = false; String expression = "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"; CharSequence inputStr = time; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(inputStr); if (matcher.matches()) { isValid = true; } return isValid; }