我在布局中有一个 edittext
和一个按钮,我的代码中我将 edittext
的 keyListener
设置为null
editText.setKeyListener(null);
我想禁止在edittext
中输入文字,然后在按钮点击后,我应该可以在edittext
中输入文字。我该如何做?这是一个简单的问题,但是我找不到任何解决方案。非常感谢您的帮助。
我在布局中有一个 edittext
和一个按钮,我的代码中我将 edittext
的 keyListener
设置为null
editText.setKeyListener(null);
我想禁止在edittext
中输入文字,然后在按钮点击后,我应该可以在edittext
中输入文字。我该如何做?这是一个简单的问题,但是我找不到任何解决方案。非常感谢您的帮助。
我可能来晚了,但是这是我做的方法:
public class MyActivity extends Activity
{
private KeyListener listener;
private EditText editText;
public void onCreate(...)
{
editText = ... // Get EditText from somewhere
listener = editText.getKeyListener(); // Save the default KeyListener!!!
editText.setKeyListener(null); // Disable input
}
// When you click your button, restore the default KeyListener
public void buttonClickHandler(...)
{
editText.setKeyListener(listener);
}
}
基本上,你需要在调用setKeyListener(null)
之前先保存EditText的默认KeyListener。然后,在单击按钮时,再次调用setKeyListener
,并传递先前保存的默认侦听器。
// When you click your button, restore the default KeyListener
public void buttonClickHandler(...)
{
editText.setKeyListener(new EditText(getApplicationContext()).getKeyListener());
}
在Android上有一个错误,请看这里:错误。
但在XML文件中,您可以这样做。使用android:editable="false"
。
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="false" <<<<<<<
</EditText>