java - 将 CharSequence 转换为可编辑
问题描述
我正在从 getText() 中返回带有 CharSequence 的 EditText 视图的加密值。
但发生 IllegalArgumentException: Invalid offset: -1。有效范围为 [0, 49] 异常
如果我将 InputType 设置为 XML 中的数字,它就可以工作。喜欢-
<com.shubham.nbsdk.SecureEditText
android:id="@+id/xpay_encrypt_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Text to Encrypt"
android:inputType="number"/>
但是有问题android:inputType="text"
@Nullable
@Override
public Editable getText() {
CharSequence encryptedText =
secureSDKImpl_inner.EncryptText(PlainText.toString());
return new Editable.Factory().newEditable(encryptedText);
}
日志
java.lang.IllegalArgumentException: Invalid offset: -1. Valid range is [0, 49]
at android.text.method.WordIterator.checkOffsetIsValid(WordIterator.java:384)
at android.text.method.WordIterator.preceding(WordIterator.java:72)
at android.widget.SpellChecker$SpellParser.parse(SpellChecker.java:592)
at android.widget.SpellChecker$SpellParser.parse(SpellChecker.java:517)
at android.widget.SpellChecker.spellCheck(SpellChecker.java:257)
at android.widget.Editor.updateSpellCheckSpans(Editor.java:702)
at android.widget.Editor.sendOnTextChanged(Editor.java:1248)
at android.widget.TextView.sendOnTextChanged(TextView.java:9407)
at android.widget.TextView.handleTextChanged(TextView.java:9490)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11948)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1258)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:843)
at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:616)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:396)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6694)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769)
我想我做错了什么
return new Editable.Factory().newEditable(encryptedText);
将 CharSequence 转换为 Editable 的任何其他选项
解决方案
推荐阅读
- sql - 从 SQL 中的特定日期计算“x”个工作日的日期
- appium - 测试前清除 iOS 钥匙串(物理设备)
- reactjs - 部署后未加载 Ant Design
- java - Java file.delete() 仅返回 false
- uniroot - 使用 uniroot 函数获取 YTM 的问题
- javascript - 在可见窗格中间反应流渲染器
- amazon-web-services - Prometheus 实例在 AWS 上循环
- r - 折线图未连接
- arduino - 如何使用 Arduino 模拟电容式触摸
- stripe-payments - Stripe - 如何从关联账户中的费用中获取余额交易(信用卡费用)