【问题标题】:Enter Key Does not Work on Key ListnerEnter Key 对 Key Listener 不起作用
【发布时间】:2014-03-06 08:07:03
【问题描述】:

我正在使用 OnKeyListner 来处理通过软键盘在编辑文本上按下的“Enter”键。 [Android.]我希望当用户从软键盘按下回车键时,它应该执行一些操作——>从编辑框中获取输入并传递给某个函数进行处理。 这是代码:

editbox.setOnKeyListener(new View.OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {

                    // Code For action on key press

                    input = editbox.getText().toString();
                    if(mEngine.init(input, getApplicationContext()))
                    {                                                          sharePref = getSharedPreferences("info",MODE_PRIVATE);
                        edit = sharePref.edit();
                        edit.putString("editbox",input);
                        edit.commit();


                        //                    inputDialog.dismiss();
                    }
                    else
                    {
                        ............

                    }
                    inputDialog.dismiss();


                    return true;
                }
                return false;
            }
        });     

好像不行。如果我做错了,请帮忙。

【问题讨论】:

  • EditText 的inputType 设置为什么?

标签: android


【解决方案1】:

在你的 EditText 中设置这个属性

android:imeOptions="actionDone"
android:imeActionLabel="Enter"

您也可以使用setOnEditorActionListener 这是示例代码..

editbox.setOnEditorActionListener(new OnEditorActionListener() {

            @Override
            public boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {
                if(actionId == 0 || actionId== EditorInfo.IME_ACTION_DONE)
                {
                    //Paste your code here.
                }
                return false;
            }

        });

【讨论】:

  • 另外,要使其正常工作,您必须在 EditText 上设置 inputType。否则返回键不会被actionDone 替换。并且返回键不会触发onEditorAction()
【解决方案2】:

按照这些步骤可能会有所帮助

  1. 当 EditText 有焦点时执行这些操作
  2. 在活动中启用键盘监听器
  3. 当点击 Enter 时,做你想做的事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2013-05-27
    • 2020-07-03
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多