在 Android 中完成按键后隐藏软键盘?

2024-01-26

我正在努力使用软键盘上的“完成”按钮。我无法获取软键盘 按完按键即可隐藏键盘。通过另一个按钮,它可以完美地与

imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);

但 onKeyListener 没有按照我想要的方式运行。当我点击 editText 时,软键盘会出现,并且其内容会被清除。

感谢收听!

main.xml:

<EditText 
    android:id="@+id/answer" 
    android:layout_gravity="center_horizontal" android:textSize="36px"
    android:inputType="phone"
    android:minWidth="60dp" android:maxWidth="60dp"
/>

Java 文件:

private EditText editText;
//...
editText = (EditText)findViewById(R.id.answer);
editText.setOnClickListener(onKeyboard);
editText.setOnKeyListener(onSoftKeyboardDonePress);
//...

// method not working:
private View.OnKeyListener onSoftKeyboardDonePress=new View.OnKeyListener() 
{
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    {
        if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION)
        {
            // code to hide the soft keyboard
            imm = (InputMethodManager) getSystemService(
                Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
        }
        return false;
    }
};

private View.OnClickListener onKeyboard=new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        editText.setText("");
    }
};

使用按钮的工作方法(在同一个java文件中):

private View.OnClickListener onDone=new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        //....
        // code to hide the soft keyboard
        imm = (InputMethodManager) getSystemService(
            Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
    }
};

Edit:当我按下“9”键时,键盘会隐藏。这很奇怪。


使用 android:imeOptions="actionDone",如下所示:

<EditText
    ...
    android:imeOptions="actionDone" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中完成按键后隐藏软键盘? 的相关文章

随机推荐