Edit Text key listener

SKT picture SKT · Jun 7, 2012 · Viewed 13.9k times · Source

I have an edittext and a button in my layout and in my code I'm setting keyListener of the edittext as null

    editText.setKeyListener(null);

so that I cannot type into my edittext. Now on my button click I should be able to type into my ediitext. How can I do that. It's a simple problem, but I'm not able to find any solution. Any help would be much appreciated.

Answer

rainai picture rainai · Jul 6, 2012

I'm probably late now but, this is the way I do it:

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);
    }
}

Basically, you first save the EditText's default KeyListener before you call setKeyListener(null). Then, when you click your button, you call setKeyListener again, passing the default listener you previously saved.