无法正确执行OnKeyListener

时间:2018-04-02 07:16:16

标签: android validation android-edittext android-softkeyboard onkeylistener

我想在将文本输入编辑文本后应用少量数字验证。我尝试使用TextWatcher进行此操作,但它仅适用于高版本,而不适用于较低版本。

因此我想使用OnKeyListener个事件。但这也行不通。

start_time_edit.setOnKeyListener(onSoftKeyboardDonePress);

private View.OnKeyListener onSoftKeyboardDonePress=new View.OnKeyListener()
{
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {

        if (event.getKeyCode() == KeyEvent.ACTION_DOWN)
        {
            Toast.makeText(CreateTimesheet.this, "checking event", Toast.LENGTH_LONG).show();
        }

        return false;
    }
};

它永远不会进入If语句,因为它们都不匹配。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您也可以在EditText上使用setOnEditorActionListener代替setOnKeyListener。

以下是示例代码,请尝试一下。

start_time_edit.setImeActionLabel("Next", KeyEvent.KEYCODE_ENTER);
start_time_edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView arg0, int actionId, KeyEvent event) {
                if ((event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
                    Toast.makeText(CreateTimesheet.this, "checking event", Toast.LENGTH_LONG).show();
                }
                return false;
            }
        });