Android EditText禁止复制粘贴
发布时间:2020-12-15 03:21:51 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 1,自定义EditTextpackage com.example.ui;import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSe
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 1,自定义EditText package com.example.ui; import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.ActionMode; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; @SuppressLint("NewApi") public class NoMenuEditText extends EditText { private final Context context; /** * This is a replacement method for the base TextView class' method of the * same name. This method is used in hidden class android.widget.Editor to * determine whether the PASTE/REPLACE popup appears when triggered from the * text insertion handle. Returning false forces this window to never * appear. * * @return false */ boolean canPaste() { return false; } /** * This is a replacement method for the base TextView class' method of the * same name. This method is used in hidden class android.widget.Editor to * determine whether the PASTE/REPLACE popup appears when triggered from the * text insertion handle. Returning false forces this window to never * appear. * * @return false */ @Override public boolean isSuggestionsEnabled() { return false; } public NoMenuEditText(Context context) { super(context); this.context = context; init(); } public NoMenuEditText(Context context,AttributeSet attrs) { super(context,attrs); this.context = context; init(); } public NoMenuEditText(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); this.context = context; init(); } private void init() { this.setCustomSelectionActionModeCallback(new ActionModeCallbackInterceptor()); this.setLongClickable(false); } /** * Prevents the action bar (top horizontal bar with cut,copy,paste,etc.) * from appearing by intercepting the callback that would cause it to be * created,and returning false. */ private class ActionModeCallbackInterceptor implements ActionMode.Callback { private final String TAG = NoMenuEditText.class.getSimpleName(); public boolean onCreateActionMode(ActionMode mode,Menu menu) { return false; } public boolean onPrepareActionMode(ActionMode mode,Menu menu) { return false; } public boolean onActionItemClicked(ActionMode mode,MenuItem item) { return false; } public void onDestroyActionMode(ActionMode mode) { } } } 2,在layout.xml文件中这样使用 <com.example.ui.NoMenuEditText android:id="@+id/ddd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="禁止复制粘贴" /> 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |