【问题标题】:not able to perform OnKeyListener correctly无法正确执行 OnKeyListener
【发布时间】:2018-04-02 07:16:16
【问题描述】:

我想在将文本输入到编辑文本后应用一些数字验证。我尝试使用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 语句,因为这两个值都不匹配。

我该怎么办?

【问题讨论】:

  • 你应该使用event.getAction() 而不是event.getKeyCode()
  • 您可以在您的 xml 代码中为 start_tim_edit 添加 imeOptions="actionNext"!看看它是否有效?
  • 你要检测next键吗?
  • 你检查答案了吗?
  • 如果有人帮助你,你应该在这里回复。

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


【解决方案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;
            }
        });

【讨论】:

  • 抱歉耽搁了
猜你喜欢
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
相关资源
最近更新 更多