如何解决在 Java/Kotlin 中禁用 EditText Clip 板操作
如何在 Java/Kotlin 代码中对密码类型的字段禁用文本复制和粘贴操作?
解决方法
fun disableClipboardAction(context : Context,editText: EditText){
try {
editText.onFocusChangeListener = View.OnFocusChangeListener { v,hasFocus ->
if (hasFocus) {
val clipboard: ClipboardManager =
context.getSystemService(AppCompatActivity.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("text","")
clipboard.setPrimaryClip(clipData)
}
}
editText.customSelectionActionModeCallback =
object : android.view.ActionMode.Callback {
override fun onCreateActionMode(
mode: android.view.ActionMode?,menu: Menu?
): Boolean {
return false
}
override fun onPrepareActionMode(
mode: android.view.ActionMode?,menu: Menu?
): Boolean {
return false
}
override fun onActionItemClicked(
mode: android.view.ActionMode?,item: MenuItem?
): Boolean {
return false
}
override fun onDestroyActionMode(mode: android.view.ActionMode?) {
}
}
} catch (exception: Exception) {
exception.printStackTrace()
}
}
,
如果您使用的是 API 级别 11 或更高级别,那么您可以停止出现复制、粘贴、剪切和自定义上下文菜单。
edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
public boolean onPrepareActionMode(ActionMode mode,Menu menu) {
return false;
}
public void onDestroyActionMode(ActionMode mode) {
}
public boolean onCreateActionMode(ActionMode mode,Menu menu) {
return false;
}
public boolean onActionItemClicked(ActionMode mode,MenuItem item) {
return false;
}
});
从 onCreateActionMode(ActionMode,Menu) 返回 false 将阻止启动操作模式(全选、剪切、复制和粘贴操作)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。