0

When a user want to paste text in MultiAutoCompleteTextView I want to overwrite it.

Means whatever he copies it must paste in my MultiAutoCompleteTextView as "Java is rocket".

I may achieve it from previous question here but I don't know how to hook the class MonitoringEditText to my MultiAutoCompleteTextView.

Can I achieve it or it is impossible.

Community
  • 1
  • 1
Sirisha
  • 133
  • 1
  • 6

1 Answers1

0

You can do this using the same concept provided in the code from the link you provided. Extend the MultiAutoCompleteTextView and override the onTextContextMenuItem method.

Something along the lines of:

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;
    }
}

Then change your MultiAutoCompleteTextView in your layout file to whatever.your.full.package.is.MonitoringMultiAutoCompleteTextView.

After that, any attempt to paste into your MultiAutoCompleteTextView will result in the text being changed to "Java is rocket"

lodlock
  • 3,638
  • 1
  • 19
  • 15