feat: opt 进港查询 filter form
This commit is contained in:
@@ -56,4 +56,43 @@ class UpperCaseAlphanumericInputFilter : InputFilter {
|
||||
*/
|
||||
fun EditText.setUpperCaseAlphanumericFilter() {
|
||||
this.filters = arrayOf(UpperCaseAlphanumericInputFilter())
|
||||
}
|
||||
|
||||
/**
|
||||
* 大写字母输入过滤器
|
||||
* 只允许输入大写字母(A-Z),小写字母自动转为大写
|
||||
*/
|
||||
class UpperCaseLetterInputFilter : InputFilter {
|
||||
override fun filter(
|
||||
source: CharSequence?,
|
||||
start: Int,
|
||||
end: Int,
|
||||
dest: Spanned?,
|
||||
dstart: Int,
|
||||
dend: Int
|
||||
): CharSequence? {
|
||||
if (source.isNullOrEmpty()) return null
|
||||
|
||||
val filtered = StringBuilder()
|
||||
for (i in start until end) {
|
||||
val char = source[i]
|
||||
if (char in 'A'..'Z' || char in 'a'..'z') {
|
||||
filtered.append(char.uppercaseChar())
|
||||
}
|
||||
}
|
||||
|
||||
return if (filtered.toString() == source.subSequence(start, end).toString()) {
|
||||
null
|
||||
} else {
|
||||
filtered.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 为 EditText 设置大写字母输入过滤器
|
||||
* 使用方式: editText.setUpperCaseLetterFilter()
|
||||
*/
|
||||
fun EditText.setUpperCaseLetterFilter() {
|
||||
this.filters = arrayOf(UpperCaseLetterInputFilter())
|
||||
}
|
||||
Reference in New Issue
Block a user