当前位置:  开发笔记 > Android > 正文

如何在代码中复制android:editable ="false"?

如何解决《如何在代码中复制android:editable="false"?》经验,为你挑选了6个好方法。

在布局中,您可以通过以下方式将EditText窗口小部件设置为不可编辑android:editable attribute.

我怎么能在代码中这样做?我需要EditText根据条件使小部件可编辑.



1> 小智..:
editText.setFocusable(false);
editText.setClickable(false);

这样可以确保EditText无法选择和聚焦控件,因此无法进行编辑.


但它也无法选择和复制.

2> 小智..:

我自己试过这个,

要禁用编辑文本:

.setFocusable(false);

这也将setFocusableInTouchMode设置为false!

要启用编辑文本:

setFocusableInTouchMode(true);

这也将setFocusable设置为true;



3> Christopher ..:

执行此操作的最佳方法是使用以下单行代码:

textView.setKeyListener(null);

文档说这个方法:

设置要与此TextView一起使用的键侦听器.这可以为null以禁止用户输入.



4> Josef Pflege..:

我认为InputFilter拒绝所有变化是一个很好的解决方案:

editText.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
        }
    }
});

编辑: dlazar建议(下面)更改returnto dst.subSequence(dstart, dend)以克服删除单词的行为.



5> 小智..:
android:editable="false" 
android:inputType="none" 

在你的xml或

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(false);

要么

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setKeyListener(null);



6> Babasaheb..:

你可以试试这个:

        mEditText.setFocusable(false);
        mEditText.setClickable(false);
        mEditText.setFocusableInTouchMode(false);
        mEditText.setLongClickable(false);
        mEditText.setInputType(InputType.TYPE_NULL);

如果您不希望用户打开编辑文本选项,这将完全禁用EditText,禁用长按.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有