zoukankan      html  css  js  c++  java
  • Android EditText禁止复制粘贴

    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="禁止复制粘贴" />
  • 相关阅读:
    【Vegas原创】mysql更改用户密码之无敌方法
    【Vegas原创】Xcopy屡试不爽
    【Vegas原创】ctrl shift无法切换输入法的解决方法
    【Vegas原创】将SQLServer表、视图、存储过程的所有者批量改为dbo的处理方法
    【Vegas原创】SQL Server2005应急备机切换步骤 生产机正常
    【Vegas原创】SQLServer 2000 企业管理器展开数据库列表错误的解决方法
    【Vegas原创】win7下打开telnet服务
    【Vegas原创】Windows 2003下CACTI的安装及配置
    【Vegas原创】SecureCRT个性化设置
    Mathematica实现微分算子功能
  • 原文地址:https://www.cnblogs.com/lr393993507/p/5542955.html
Copyright © 2011-2022 走看看