android:当按下完成键时,软键盘执行操作

时间:2011-09-28 13:32:01

标签: android key listener android-softkeyboard

我有一个EditText。我希望在输入一些文本后,当用户按下软键盘的Done键时,它应该直接执行一些我在按钮点击事件中实现的搜索操作。

5 个答案:

答案 0 :(得分:175)

试试这个

editText.setOnEditorActionListener(new OnEditorActionListener() {        
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if(actionId==EditorInfo.IME_ACTION_DONE){
            //do something
        }
    return false;
    }
});

答案 1 :(得分:20)

试试这个

适用于 DONE RETURN

EditText editText= (EditText) findViewById(R.id.editText);
editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {

                @Override
                public boolean onEditorAction(TextView v, int actionId,
                        KeyEvent event) {
                    if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER
                            || actionId == EditorInfo.IME_ACTION_DONE) {
                        // Do your action
                        return true;
                    }
                    return false;
                }
            });

答案 2 :(得分:0)

您捕获KeyEvent然后检查其密钥代码。 FLAG_EDITOR_ACTION用于标识来自IME的输入密钥,其输入密钥已被自动标记为“下一个”或“已完成”

if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION)
    //your code here

查找文档here

第二种方法

myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
    int result = actionId & EditorInfo.IME_MASK_ACTION;
    switch(result) {
    case EditorInfo.IME_ACTION_DONE:
        // done stuff
        break;
    case EditorInfo.IME_ACTION_NEXT:
        // next stuff
        break;
    }
 }
});

答案 3 :(得分:0)

试试这个

无论键盘是显示输入符号还是下一个箭头符号

,这都将起作用
YourEdittextName.setOnEditorActionListener(new TextView.OnEditorActionListener()
    {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
        {
            if(actionId== EditorInfo.IME_ACTION_DONE||actionId==EditorInfo.IME_ACTION_NEXT)
            {
                //Perform Action here 
            }
            return false;
        }
    });

如果你面对红线,那么这样做...... 按alt + enter导入Keyevent和EditorInfo 然后所有的错误将其删除它将正确.......

答案 4 :(得分:0)

在 Kotlin 中使用

center

您也可以在“if”大括号内返回 true 以使用事件 - 这样当您按下完成时键盘不会下降

相关问题