如何禁用从/到EditText / TextView的复制/粘贴

时间:2015-03-19 09:45:06

标签: android textview subtitle selectable textedit

我试图制作一个不应该允许用户从中复制内容或将内容粘贴到其中的Edittext。我读了所有的ansers,这样做但它对我不起作用!当我长时间点击文本以选择它时,显示我复制/过去。检查我的代码

video.TextViewSelectable class:

public class TextViewSelectable extends TextView {

OnSelectionChangedListener onSelectionChangedListener;

public TextViewSelectable(Context context, AttributeSet attrs,
                          int defStyle) {
    super(context, attrs, defStyle);
    disableCopyPast();

}

public TextViewSelectable(Context context, AttributeSet attrs) {
    super(context, attrs);
    disableCopyPast();


}

public TextViewSelectable(Context context) {
    super(context);
    disableCopyPast();

}


@Override
protected void onSelectionChanged(int selStart, int selEnd) {
    if (onSelectionChangedListener == null){
        return;
    }
    String result=this.getText().subSequence(selStart, selEnd).toString();
    if(result.length()>1){
        onSelectionChangedListener.onSelectionChange(result);
    }
}

public void setOnSelectionChangedListener(OnSelectionChangedListener onSelectionChangedListener){
    this.onSelectionChangedListener = onSelectionChangedListener;
}

public void disableCopyPast() {
    this.setCustomSelectionActionModeCallback(new 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;
        }
    });
    this.setTextIsSelectable(true);
}

public interface OnSelectionChangedListener{
    public void onSelectionChange(String result);
}

}

xml代码:

<video.TextViewSelectable
        android:id="@+id/offLine_subtitleText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="12"
        android:ellipsize="middle"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:clickable="true"
        android:textIsSelectable="true"
        android:textColorHighlight="#fffffe60"
        style="@android:style/Holo.ButtonBar"

        android:layout_gravity="center" 
        android:textSize="15sp"/>

用法:

    private  TextViewSelectable subtitleText;
 subtitleText =          (TextViewSelectable)findViewById(R.id.offLine_subtitleText);
  subtitleText.setOnSelectionChangedListener(this);

2 个答案:

答案 0 :(得分:1)

在布局中的edittext中给出以下属性

机器人:longClickable =&#34;假&#34;

答案 1 :(得分:0)

你不能,不完全。即使你阻止所有这些,如果你使用键盘,如滑动你可以通过键盘访问复制和粘贴(sw键到c和sw键到v手势),这不使用任何功能,不能受阻。