当前位置: 首页 > 面试题库 >

onTextChanged函数在保存edittext颜色时无法正常工作

方和宜
2023-03-14
问题内容

我试图动态地保存具有不同颜色的编辑文本,但是当我通过将其转换为HTML形式进行保存时,它只会将文本保存为一种颜色,而不是我选择的颜色。

这是Textchanged,str是可扩展文本。

text.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                if(start < s.length() - 1 || count > before){
                    str.setSpan(new ForegroundColorSpan(Color.parseColor(txtColor)), start,start+1 , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                }
            }
            @Override
            public void afterTextChanged(Editable s) {

            }
        });

问题答案:

在文本更改后尝试此操作,它将解决您的问题。

public void afterTextChanged(Editable s) {
        str.removeSpan(new ForegroundColorSpan(Color.parseColor(currentColor)));
       }


 类似资料:
  • 问题内容: 这是我的xml 使用此代码也不起作用 maxLenth无法正常工作,我不知道为什么,但是不是。 我检查了堆栈上的其他答案,但它们也无法正常工作。 请检查是否有任何EditText属性冲突,或者是什么问题? 编辑:其他开发人员也面临着 同样的问题 请参阅评论此处 Mansi和aat面临着同样的问题 ,这里的评论是Vincy和Riser面临着同样的问题 编辑:问题解决了 我正在使用输入过滤

  • 问题内容: 以下是我的脚本: 它显示以下错误: 我该如何处理? 谢谢 问题答案: 我已经安装了SSH2 PECL扩展程序,它的工作正常,谢谢大家的帮助…

  • 我实际上正在尝试做卡片格式化,为此我正在尝试实现谷歌从链接所说的 由于其他afterTextChanged()方法可能已经进行了其他更改并使偏移量无效,因此不会告诉您更改发生的位置。但是如果您需要知道这里,可以使用onTextChanged(CharSequence,int,int,int)中的setSpan(Object,int,int,int)来标记您的位置,然后从这里查找span结束的位置。

  • 我在Windows10x86 64位计算机上运行Netbeans 8.1,我已经完成了项目的运行 这里是输出: 3 输入金额:含税:3.15美元 运行成功(总时间:4s) 如您所见,扫描功能在程序甚至打印“输入金额:”之前读取数字。另外,在我注释掉scanf函数之后,它按预期打印了两条printf语句。我已经努力解决这个问题一段时间了,非常感谢您的帮助,谢谢!

  • 我刚刚将sass添加到我的创建-反应-应用程序项目中。当我硬编码颜色值时,样式会相应地更新。但是当我尝试使用一些scss方法时,新的样式被忽略了。 e、 这个很好用。。。 ...这不。。。 ...这也不是 我可以导入新重命名的. scss文件,并且所有样式保持一致,所以我不认为这是编译错误。 知道为什么会这样吗?我使用的,因为节点sass 5给我一个反应错误。

  • 我有一个带有的列表项,我不知道会有多少项。当我在中输入一些文本,然后向下滚动时,我遇到了一个问题,当我再次向上滚动后,我的第一个 中没有文本。 我想知道我应该写什么,在哪里写代码,这样当用户在中键入或完成键入(我想用一个>来完成)时,文本会保存到一个文件中(我将它保存在外部存储的.txt文件中) 我应该在活动的方法中,还是在适配器类或其他地方这样做? 下面是一些代码 如果没有这个“addtextC