我需要一个侦听器,每次EditText中的选择发生变化时都会调用该侦听器。 我google了一下,但我找不到任何有用的API级别7。 我正在编写文本编辑器,我希望每次用户选择粗体/斜体/带下划线的文本时,都会选中粗体/斜体/带下划线的按钮。
答案 0 :(得分:4)
很老的问题,但有人可能仍然需要这个,所以这是我的解决方案:由于文本选择是通过长按文本完成的,所以我只是使用了以下内容:
editText.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
// do whatever you need to do on text selection
}
});
这允许在文本选择上进行自定义行为,并且不会阻止用户复制/粘贴。
答案 1 :(得分:0)
更好的方法是扩展EditText,然后根据您希望如何管理更改文本,您可以覆盖2种方法中的一种来计算自定义行为。
如果您希望更改选择,则可以使用onSelectionChanged()
方法并在那里实施代码。
如果您想在编辑器中更改文字时实施某些内容,则可以使用onTextChanged()
。