使EditText字段不可编辑

时间:2012-01-25 19:15:54

标签: java android android-layout

如何在

时使EditText字段对属性inputType不可编辑
inputType="textPassword"

我的问题是,以下代码行会使密码可见。

password.setInputType(InputType.TYPE_NULL);

已经尝试过,但仍然可以编辑

password.setEnabled(false)

2 个答案:

答案 0 :(得分:3)

如果你玩:

edittext.setFocusable();
edittext.setFocusableInTouchMode();

您应该可以在需要时使EditText可编辑/不可编辑。

答案 1 :(得分:2)

使用此:How to make EditText not editable through XML in Android?

你说你希望你的领域在某些逻辑之后可以编辑。这样做:

KeyListener keyLis = textView.getKeyListener();
textView.setKeyListener(null);

然后,当您希望再次编辑TextView时,请执行以下操作:

textView.setKeyListener(keyLis);

TextView课程的文档:

两种方法:

getKeyListener()

setKeyListener(KeyListener keyLis)

修改

我没有找到任何漂亮的答案,但我确实找到了一些替代方法:

  1. 制作无法修改的

    valueText.setEnabled(false); valueText.setClickable(false); valueText.setFocusable(false);

  2. 然后,

    valueText.setEnabled(true);
    valueText.setClickable(true);
    valueText.setFocusable(true);
    
    1. 您还可以更改编辑文本时发生的事情,以便不会发生任何事情:Can we have uneditable text in edittext

      1. 还有一些非常疯狂的解决方案。但他们根本不漂亮。
    2. 我建议使用初始解决方案,除非有人找到更快的方法。

      抱歉,我找不到更好的办法:(