Files
assistant-android/app/src/main/java/com/gh/common/util/TextHelper.kt

56 lines
1.8 KiB
Kotlin

package com.gh.common.util
import android.text.Editable
import android.text.InputFilter
import android.text.TextWatcher
import android.widget.EditText
import com.gh.gamecenter.R
object TextHelper {
@JvmStatic
fun limitTheLengthOfEditText(editText: EditText, length: Int, exceedCallback: ExceedTextLengthLimitCallback? = null) {
editText.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
val tvCount = editText.text.toString().length
if (tvCount > length) {
val str = editText.text.toString().substring(0, length)
editText.setText(str)
editText.setSelection(str.length)
if (!ClickUtils.isFastDoubleClick(R.id.userinfo_nickname_et, 2000)) {
exceedCallback?.onExceed()
}
}
}
})
}
@JvmStatic
fun getFilter(maxLength: Int, msg: String)//限制最大长度-Toast弹窗提示
: InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
val keep = maxLength - (dest.length - (dend - dstart))
if (keep < end - start) {
ToastUtils.showToast(msg)
}
when {
keep <= 0 -> ""
keep >= end - start -> null
else -> source.subSequence(start, start + keep)
}
}
}
interface ExceedTextLengthLimitCallback {
fun onExceed()
}
}