gpt4 book ai didi

android - 联想设备中 RTL 语言的 EditText.setText() 方法中的奇怪错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:35 29 4
gpt4 key购买 nike

我收到了客户关于我在 Lenovo 设备中的 Android 应用程序的错误报告

我注意到,当我将应用程序的语言环境设置为 RTL 语言(如 Persian)或将 Android 操作系统的语言更改为 Persian 时, EditTextTextviewsetTex() 方法在原始字符串的开头和结尾插入两个额外的字符。

例如:

String myString1 = "original string";
int length1 = myString1.length(); // length1 is 15

myEditText.setText(myString1);
String myString2 = myEditText.getText().toString();
int length2 = myString2.length(); // length2 is 17

此问题仅发生在 Lenovo 设备上。 setText()方法在开头添加LEFT-TO-RIGHT OVERRIDE (U+202D)POP DIRECTIONAL FORMATTING (U+202C)在 RTL 模式下我的字符串的末尾。这会导致我的应用程序出现大问题。我有很多 setText() 方法。有解决这个问题的短期解决方案吗?

设备信息: Lenovo Tablet TB-8504X, Android 7.1.1

更新:Android 操作系统 有问题吗?我能为该设备找到任何修复方法吗?

最佳答案

.length() 和 .getText().length() 它们是相同的

但是 .getText().toString().length() 在某些情况下是不同的。

首先,它不是String,而是CharSequence。因此,它基于格式化,这可能会影响计算量。

关于android - 联想设备中 RTL 语言的 EditText.setText() 方法中的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49770358/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com