【发布时间】:2020-01-23 13:08:18
【问题描述】:
我的 Android 应用在其布局中有一个 EditText。
EditText 可以包含带有可选 ImageSpan 的文本。
在某一时刻,用户可以执行一些编辑,即可以编辑文本和/或删除跨度。
我得到插入符号的位置
int caretPosition= editText.getSelectionStart();
此时我需要知道左边的文本,没有跨度。
我的意思是,如果左侧没有跨度,则返回的文本正是预期的,而如果存在一些跨度,则文本没有空格或其他字符代替跨度。
例子
aaaaaaaaaaa<span>bbbbbb<span>cccc_dddddd<span>eeeeee
字符 _ 在这里表示光标位置(但它没有任何空格)。
我的目标是得到这个字符串:
aaaaaaaaaaabbbbbbcccc
这很困难,因为跨度似乎就像一个字符,但我不确定。而且我不知道如何拆分可编辑以在左侧进行迭代。
如何实现?
【问题讨论】:
-
你有没有试过在将String从开始分割到选择开始后使用正则表达式?
-
@Nizar 如果你参考文本,它没有跨度的 HTML 部分
-
@Nizar 当您从 Editable 获取文本时,您也不会获得 spans 的 HTML,因此在搜索 spans 时您无需应用正则表达式。否则我不理解你的建议。尝试为答案编写一些代码。
-
你能分享你的代码吗?我正在尝试重现类似的情况,但我不会接近你的情况
-
@Nizar 请看我的回答
标签: java android split android-edittext spannablestring