【问题标题】:Open Keyboard for another EditView when click Enter单击 Enter 时打开另一个 EditView 的键盘
【发布时间】:2014-08-13 17:17:11
【问题描述】:

当我单击 Enter 键时(当我在第一个 EditView 中时),我想为另一个 EditView(而不是我正在使用的)打开键盘。

场景应该是这样的: 我正在为第一个 EditView 的键盘写一些东西,我已经完成了,所以我按“Enter”,它会打开第二个 EditView 的键盘。

我尝试了不同的代码但没有成功,如果有人可以帮助我。

【问题讨论】:

    标签: android keyboard editview


    【解决方案1】:

    如果我理解这里就是答案

    editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
    

    【讨论】:

    • 完整的代码是什么?我试过这个不起作用: mEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { mEditText2.setImeOptions(EditorInfo.IME_ACTION_NEXT); return true; } return false; } });
    • 你不需要这个。仅使用 mEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);并测试
    【解决方案2】:

    您基本上想在按下 Enter 后将焦点从 1 个 EditText 切换到另一个。

    这可以通过在您的第一个 EditText 上设置“setNextFocusDownId”选项来轻松完成。

    firstEditText.setNextFocusDownId(R.id.secondEditTextId);

    【讨论】:

    • 你的回答似乎很有趣,但我无法让它在我的代码上运行...你能给我一个可以运行的代码示例吗?
    • 当然。 EditText firstEditText = (EditText) findViewById(R.id.first);EditText secondEditText = (EditText) findViewById(R.id.second);firstEditText.setNextFocusDownId(R.id.second);
    【解决方案3】:

    我通过像 Kasper 建议的那样使用“setNextFocusDownld”搜索找到,使用以下答案:Android Softkey's next button not taking focus to spinner

    我使用的代码是:

    mEditText.setNextFocusDownId(R.id.textView2b);
            mEditText.setOnKeyListener(new OnKeyListener() {
    
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    // If the event is a key-down event on the "enter" button
                    if ((event.getAction() == KeyEvent.ACTION_DOWN)
                            && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                        // Perform action on Enter key press
                        mEditText.clearFocus();
                        mEditText2.requestFocus();
                        return true;
                    }
                    return false;
                }
            });
            mEditText2.setOnKeyListener(new OnKeyListener() {
    
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    // If the event is a key-down event on the "enter" button
                    if ((event.getAction() == KeyEvent.ACTION_DOWN)
                            && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                        // Perform action on Enter key press
                        mEditText2.clearFocus();
                        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(mEditText2.getWindowToken(), 0);
                        return true;
                    }
                    return false;
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 2015-09-13
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2013-01-22
      • 2021-11-22
      相关资源
      最近更新 更多