0

我需要一个监听器,每次 EditText 中的选择发生变化时都会调用它。我四处搜索,但找不到任何对 API 级别 7 有用的东西。我正在编写一个文本编辑器,我希望每次用户选择粗体/斜体/下划线文本时都会选中粗体/斜体/下划线按钮。

4

2 回答 2

4

很老的问题,但有人可能仍然需要这个,所以这是我的解决方案:由于文本选择是通过长按文本完成的,我只是使用了以下内容:

editText.setOnLongClickListener(new View.OnLongClickListener() {

@Override
public boolean onLongClick(View view) {
        // do whatever you need to do on text selection
    }
});

这允许对文本选择进行自定义行为,并且不会阻止用户复制/粘贴。

于 2013-10-11T10:11:28.053 回答
0

更好的方法是扩展 EditText,然后根据您希望如何管理不断变化的文本,您可以覆盖这两种方法之一来制定您的自定义行为。

  1. 如果您希望更改选择,那么您可以使用该onSelectionChanged()方法并在那里实现您的代码。

  2. 如果您想在编辑器中的文本更改时实现某些东西,那么您可以使用onTextChanged().

于 2012-04-17T11:57:23.667 回答