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复制/粘贴并双击全选[重复]