android如何禁止edittext复制粘贴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android如何禁止edittext复制粘贴相关的知识,希望对你有一定的参考价值。

  禁止edittext复制粘贴有以下几种情况,需要区别对待:

  1、在API-11以下的版本只需要在Xml布局文件或者用代码把长按属性设置成false就可以;代码如下:

editText.setLongClickable(false); // Xml layout file android:longClickable="false"

  2、在API-11及以上的话,取消长按就不能完全有效了,最根本的是无效化选择的操作;代码如下:

editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() 

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) 
return false;


@Override
public void onDestroyActionMode(ActionMode mode) 



@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) 
return false;


@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) 
return false;

);

  注意:EditText在横屏编辑的时候会出现一个新的不同的编辑界面,这个界面里还是可以复制粘贴的,因此也要取消这个额外的UI:

editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); // android:imeOptions="flagNoExtractUi"
参考技术A 1、如果你要禁用别人程序的这个功能,只有你自己破解他的软件
2、如果你自己写软件的,edittext空间本身没有复制粘贴的功能,你把复制粘贴的代码删掉就行了本回答被提问者和网友采纳
参考技术B textField.setLongClickable(false);
textField.setTextIsSelectable(false); //好像要API11以后才可用

Android的EditText长按只显示上面的复制粘贴菜单,不要弹出下面的输入法键盘怎么做?

4.0以上的API禁止EditText弹出键盘需要这样写:

4.0的是setShowSoftInputOnFocus,4.2的是setSoftInputOnFocus。

EditText editText;
//editText的实例化我不写了
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(e1.getWindowToken(), 0);
try 
Class<EditText> cls = EditText.class;
setSoftInputShownOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(editText, false);
 catch (Exception e) 
e.printStackTrace();

并且还要在配置文件里面加上android:windowSoftInputMode="stateHidden"

4.0以下的可用editText.setInputType(InputType.TYPE_NULL);

或者直接在XML进行属性设置。

如果对4.0以上系统的操作这句代码,EditText将会没有光标。

参考技术A 1)自己找找在XML文件里面有木有这个方面的属性,自己查文档
2)自己extends EditText , overwrite OnClickListener 函数体空就好了
参考技术B 重写 OnClickListener吧

以上是关于android如何禁止edittext复制粘贴的主要内容,如果未能解决你的问题,请参考以下文章

Android的EditText长按只显示上面的复制粘贴菜单,不要弹出下面的输入法键盘怎么做?

Android - 防止edittext复制/粘贴并双击全选[重复]

如何从 EditText 禁用复制和粘贴

求代码,Android系统长按如何禁止出现复制链接、打开链接菜单

如何隐藏复制/粘贴弹出窗口[重复]

如何避免在旋转端口登陆Android4.X后在智能手机中剪切/复制/粘贴?