在 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"
当用户想在 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"