在 MultiAutoCompleteTextView 中覆盖事件文本 Android

Overwrite pate event text in MultiAutoCompleteTextView Android

当用户想在 MultiAutoCompleteTextView 中粘贴文本时,我想覆盖它。

意味着他复制的任何内容都必须作为 "Java is rocket".

粘贴到我的 MultiAutoCompleteTextView 中

我可以从 previous question here 实现它,但我不知道如何将 class MonitoringEditText 连接到我的 MultiAutoCompleteTextView

我能实现还是不可能。

您可以使用您提供的 link 代码中提供的相同概念来执行此操作。扩展 MultiAutoCompleteTextView 并覆盖 onTextContextMenuItem 方法。

大致如下:

public class MonitoringMultiAutoCompleteTextView extends MultiAutoCompleteTextView {
    public MonitoringMultiAutoCompleteTextView(Context context) {
        super(context);
    }

    public MonitoringMultiAutoCompleteTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MonitoringMultiAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    //based on 
    @Override
    public boolean onTextContextMenuItem(int id) {
        // Do your thing:
        boolean consumed = super.onTextContextMenuItem(id);
        // React:
        if (android.R.id.paste == id) {
            setText("Java is rocket");
        }
        return consumed;
    }
}

然后将布局文件中的 MultiAutoCompleteTextView 更改为 whatever.your.full.package.is.MonitoringMultiAutoCompleteTextView。

之后,任何尝试粘贴到您的 MultiAutoCompleteTextView 中的操作都会导致文本更改为 "Java is rocket"