Android - 在编辑文本中禁用复制/粘贴 - 甚至尝试了一些解决方案

时间:2015-10-09 10:53:51

标签: android android-edittext copy-paste

我正在寻找解决方案来完全禁用Android中EditText的复制/粘贴功能。我没有尝试过。的帖子和博客,但没有完全的工作。 请注意,它在某些设备上工作,但在HTC设备上使用o / s 4.0.1时使用相同的o / s,当用户按三次输入文本时,它不起作用。 下面是我现在用于EditText的示例类。

<div class="menu">
	<ul>
	<li  class="active"  ><a href="#">Home</a></li>
	<li  ><a href="#">Products</a>
		<ul id="ul">
			<li id="li"><a href="#">BOOK CASES / SHOW CASES</a></li>
			<li id="li"><a href="#">CHAIRS</a>
				<ul id="ulul">
					<li id="lili"><a href="#">Office Chairs</a></li>
					<li id="lili"><a href="#">Home Chairs</a></li>
				</ul>
			</li>
			<li id="li"><a href="#">CABINETS</a></li>
			<li id="li"><a href="#">FILING CABINETS</a></li>
		</ul>
	</li>
	</ul>
</div>

注意:我已查看此解决方案EditText: Disable Paste/Replace menu pop-up on Text Selection Handler click event

2 个答案:

答案 0 :(得分:1)

如果您使用的是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将阻止**操作模式启动(选择全部,剪切,复制和粘贴操作)。

for more detail

答案 1 :(得分:-1)

Plz尝试下面的代码。

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