在MultiAutoCompleteTextView Android

时间:2015-12-11 19:01:41

标签: android android-edittext paste

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

意味着他复制的东西必须粘贴在我的MultiAutoCompleteTextView中,因为“Java就是火箭”。

我可以从previous question here实现,但我不知道如何将课程MonitoringEditText挂钩到我的MultiAutoCompleteTextView

我可以实现它还是不可能实现它。

1 个答案:

答案 0 :(得分:0)

您可以使用您提供的链接中的代码中提供的相同概念来执行此操作。扩展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 http://stackoverflow.com/a/14981376/1566836
    @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是火箭"