在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
当前回答
在类中设置以下属性:
editText.setFocusable(false);
editText.setEnabled(false);
它会像你要求的那样顺利工作。
其他回答
如果你使用android:editable="false", eclipse会提醒你这条消息“android:editable已弃用:请使用inputType”。
所以,我使用android:focusable="false"代替,它为我工作得很好。
使用android:editable="false"是Depracted。相反,你需要使用android:focusable="false"
从@渐近线对已接受答案的评论中,使用:
myEditText.setEnabled(false);
myEditText.setInputType(InputType.TYPE_NULL);
...鲍勃是你的叔叔。
我相信正确的方法是设置android:editable="false"。
如果你想知道为什么我的链接指向TextView的属性,你的答案是,因为EditText从TextView继承:
EditText是一个薄薄的贴面 配置自身为的TextView 可编辑的。
更新: 正如下面的评论中提到的,editable已弃用(从API级别3开始)。您应该使用inputType(值为none)。
您可以尝试以下方法:
private void disableEditText(EditText editText) {
editText.setFocusable(false);
editText.setEnabled(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);
editText.setBackgroundColor(Color.TRANSPARENT);
}
启用EditText:
禁用EditText:
这对我有用,希望能帮到你。