Edit Text key listener

2019-02-08 09:11发布

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.

3条回答
▲ chillily
2楼-- · 2019-02-08 09:37

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.

查看更多
Luminary・发光体
3楼-- · 2019-02-08 09:44

its bug in android See here Bugs.

But in xml file you can do it.Using android:editable="false"

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:editable="false" <<<<<<<
</EditText>
查看更多
甜甜的少女心
4楼-- · 2019-02-08 09:50

You can use this :

// When you click your button, restore the default KeyListener
public void buttonClickHandler(...)
{
    editText.setKeyListener(new EditText(getApplicationContext()).getKeyListener());
}
查看更多
登录 后发表回答