如何在安卓编辑文本中禁用"share"功能



每当我在EditText中有文本时,用户都可以在文本上长按;复制/剪切/共享";选项悬停在上面。

对我来说,让复制/剪切(也粘贴(选项出现是可以的(尽管不是真的需要(,但我真的不能让这些文本触发"粘贴";份额;选项出现。

如果不重新发明轮子,这可行吗?

定义EditText的XML代码非常基本,目前正在针对API 30:进行测试

<EditText
android:id="@+id/settings_doctor_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/dr_name"
android:inputType="textCapCharacters"
android:singleLine="true"
android:textSize="26sp" />

我已经对EditText和TextView文档进行了审查,但我仍然没有找到任何解决这个问题的方法。

我遗漏了什么文件吗?感谢阅读!

我与您分享从您的评论中获得的已实现和测试的解决方案:

我创建了一个自己的TextEdit:

public class EditText extends android.support.v7.widget.AppCompatEditText {
public EditText(Context context) {
super(context);
this.setCustomSelectionActionModeCallback(removeShareActionMode);
}
ActionMode.Callback removeShareActionMode = new ActionMode.Callback() {
@Override
@TargetApi(26)
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
if (menu != null) {
menu.removeItem(android.R.id.shareText);
}
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
}
}

并在任何地方使用它。工作符合预期。感谢大家的贡献。很抱歉,我没有足够的声誉来投票给你的答案。

最新更新