-1

How I can disable text copy and paste action on password kind of fields in Java/Kotlin code?

Ready Android
  • 3,529
  • 2
  • 26
  • 40

2 Answers2

1

If you are using API level 11 or above then you can stop copy,paste,cut and custom context menus from appearing by.

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

Returning false from onCreateActionMode(ActionMode, Menu) will prevent the action mode from being started(Select All, Cut, Copy and Paste actions).

Fahime Zivdar
  • 341
  • 2
  • 9
0
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()
            }
        }
Ready Android
  • 3,529
  • 2
  • 26
  • 40