Android(安卓)禁止输入框 EditText 复制粘贴
16lz
2021-01-24
实现 EditText 禁止复制粘贴菜单
- 禁止长按事件
ActionMode
回调- 反射
android.widget.Editor
修改弹框菜单不显示
/** * 禁止输入框复制粘贴菜单 */public void disableCopyAndPaste(final EditText editText) { try { if (editText == null) { return ; } editText.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; } }); editText.setLongClickable(false); editText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // setInsertionDisabled when user touches the view setInsertionDisabled(editText); } return false; } }); editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { return false; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Override public void onDestroyActionMode(ActionMode mode) { } }); } catch (Exception e) { e.printStackTrace(); }}private void setInsertionDisabled(EditText editText) { try { Field editorField = TextView.class.getDeclaredField("mEditor"); editorField.setAccessible(true); Object editorObject = editorField.get(editText); // if this view supports insertion handles Class editorClass = Class.forName("android.widget.Editor"); Field mInsertionControllerEnabledField = editorClass.getDeclaredField("mInsertionControllerEnabled"); mInsertionControllerEnabledField.setAccessible(true); mInsertionControllerEnabledField.set(editorObject, false); // if this view supports selection handles Field mSelectionControllerEnabledField = editorClass.getDeclaredField("mSelectionControllerEnabled"); mSelectionControllerEnabledField.setAccessible(true); mSelectionControllerEnabledField.set(editorObject, false); } catch (Exception e) { e.printStackTrace(); }}
Disable EditText context menu
更多相关文章
- android 属性系统使用的小问题
- Android(安卓)滚动事件 OnScrollListener
- Android(安卓)wifi设计原理(源码分析)
- Android(安卓)Tips
- Android(安卓)databinding RecycleView item 子控件点击事件
- Android长按弹出菜单
- Android(安卓)Enter软件盘监听事件。
- Eclipse+android 开发配置步骤
- Android(安卓)四个步骤集成EventBus事件总线框架实现消息发送和