我正在尋找解決方案來禁用長按編輯菜單(複製/粘貼)以及編輯文本框的雙擊全選功能。我已經以類似的方式閱讀了關於此問題的一些解決方案,但需要更進一步。Android - 防止edittext複製/粘貼和雙擊選擇所有
對於這個應用程序,我有一個要求,以防止用戶使用我的應用程序的複製/粘貼功能,並需要一種方法來禁用此功能,將在2.3 API工作,以及在新的平板電腦使用時。我正在測試NexusOne手機設備和Galaxy平板電腦。 (minSDK是8,目標是10)
目前我正在使用這個(舉例): edittextPassword.setLongClickable(false); - 禁用彈出編輯菜單,太棒了!
此方法在電話設備上工作以防止編輯菜單彈出。在平板電腦上,長按操作也禁用了此功能。然而,該平板電腦具有更新的雙擊功能,可以選擇所有文本並打開編輯菜單。是否有一種方法讓舊API取消/陷阱/禁用更新的API功能或防止雙擊手勢?
更新:使用setLongClickable(假的),並連接到GestureDetector setOnTouchListener的組合(感謝你對尼古拉建議),我能夠捕獲/取消從開放的雙擊和長按菜單編輯。
接下來要弄清楚的是......在三星手機上(Galaxy S,目前還不確定其他設備),當您點擊一個字段時,會得到一個光標和一個浮動光標指針按鈕(正確的名稱??)。點擊這個指針按鈕是另一種打開編輯菜單的方法。任何人都知道如何禁用這個?我唯一的解決方法是使用TextWatcher清除BeforeTextChanges和AfterTextChanges上的剪貼板。這確保了即使您進入複製/粘貼菜單,剪貼板也被清除,並且沒有任何要粘貼的東西。
「目前我正在使用這個:edittextPassword.setLongClickable(false); -disable彈出窗口編輯菜單,太棒了!「 - 如果在所有設備上都能正常工作,我會感到很驚訝,不止一家制造商已經修改了EditText在這些操作方面的工作原理 – CommonsWare
請同時考慮你的用戶我一直對EditTexts感到沮喪,不允許粘貼,因爲我爲我的所有帳戶使用隨機生成的強密碼(Dashlane),並且輸入這些密碼非常困難,所以我通常必須將密碼更改爲簡單的方式,然後將其更改爲強密碼。它吸... – Simon
使用GestureListener,每當有雙擊/長按時返回true,如果事件沒有被處理,它會阻止系統做出相應的反應 –