feat: opt 进港查询 filter form
This commit is contained in:
@@ -56,4 +56,43 @@ class UpperCaseAlphanumericInputFilter : InputFilter {
|
|||||||
*/
|
*/
|
||||||
fun EditText.setUpperCaseAlphanumericFilter() {
|
fun EditText.setUpperCaseAlphanumericFilter() {
|
||||||
this.filters = arrayOf(UpperCaseAlphanumericInputFilter())
|
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())
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,8 @@ import com.lukouguoji.module_base.impl.FlowBus
|
|||||||
import com.lukouguoji.module_base.impl.observe
|
import com.lukouguoji.module_base.impl.observe
|
||||||
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||||
import com.lukouguoji.module_base.ktx.getLifecycleOwner
|
import com.lukouguoji.module_base.ktx.getLifecycleOwner
|
||||||
|
import com.lukouguoji.module_base.ktx.setUpperCaseAlphanumericFilter
|
||||||
|
import com.lukouguoji.module_base.ktx.setUpperCaseLetterFilter
|
||||||
import com.lukouguoji.module_base.router.ARouterConstants
|
import com.lukouguoji.module_base.router.ARouterConstants
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,6 +55,11 @@ class IntImpQueryActivity :
|
|||||||
if (visible) showFilterPanel() else hideFilterPanel()
|
if (visible) showFilterPanel() else hideFilterPanel()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 航班号:大写字母+数字
|
||||||
|
binding.filterPanel.filterFlightNo.et.setUpperCaseAlphanumericFilter()
|
||||||
|
// 始发港:仅大写字母
|
||||||
|
binding.filterPanel.filterOrigin.et.setUpperCaseLetterFilter()
|
||||||
|
|
||||||
viewModel.refresh()
|
viewModel.refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,7 @@
|
|||||||
|
|
||||||
<!-- 航班号 -->
|
<!-- 航班号 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/filter_flight_no"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
@@ -81,6 +82,7 @@
|
|||||||
|
|
||||||
<!-- 始发港 -->
|
<!-- 始发港 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/filter_origin"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
|||||||
Reference in New Issue
Block a user