【问题标题】:How to define up and down arrow in custom android keyboard如何在自定义 android 键盘中定义向上和向下箭头
【发布时间】:2017-08-11 20:14:41
【问题描述】:

我已经创建了 android 键盘,并且正在创建箭头以在用户输入中移动光标,我可以左右移动,但我不知道如何编写上下的代码 .. 这是代码

  switch (arrow){
    case KEY_LEFT:
      CharSequence leftText = getCurrentInputConnection().getTextBeforeCursor(1000, 0);
      int leftLen = leftText.length() ;
      getCurrentInputConnection().setSelection(leftLen-1, leftLen-1);
      break;
    case KEY_RIGHT:
      CharSequence rightText = getCurrentInputConnection().getTextBeforeCursor(1000, 0);
      int rightLen = rightText.length() ;
      getCurrentInputConnection().setSelection(rightLen+1, rightLen+1);
      break;
   case KEY_UP: case KEY_DOWN:
     break;
  }

任何人都可以帮我实现 down and up 吗??

【问题讨论】:

    标签: android keyboard


    【解决方案1】:

    如果你只是想移动光标

    https://developer.android.com/reference/android/inputmethodservice/InputMethodService.html#sendDownUpKeyEvents(int)

    尝试使用 sendDownUpKeyEvents 方法

    sendDownUpKeyEvents(KeyEvent.KEYCODE_DPAD_RIGHT);
    

    将简单地完成工作。

    【讨论】:

      【解决方案2】:

      首先,我建议做这样的事情来检查按键

          myEditText.setOnKeyListener(new View.OnKeyListener() {
              @Override
              public boolean onKey(View v,
                                   int keyCode,
                                   KeyEvent event) {
                  if (event.getAction() == KeyEvent.ACTION_DOWN) {
                      switch (keyCode) {
                          case KeyEvent.KEYCODE_DPAD_LEFT:
                              moveCursorLeft();
                              return true;
                          case KeyEvent.KEYCODE_DPAD_RIGHT:
                              moveCursorRight();
                              return true;
                          case KeyEvent.KEYCODE_DPAD_UP:
                              moveCursorUp();
                              return true;
                          case KeyEvent.KEYCODE_DPAD_DOWN:
                              moveCursorDown();
                              return true;
                      }
                  }
                  return false;
              }
          });
      

      我不假设您正在编写某种文本编辑器。

      向上和向下的实现取决于您希望这些按钮做什么,以及到目前为止您是如何实现的。例如,您可以将每一行作为其自己的EditText,并在ArrayList 中进行跟踪。然后,每次添加新行时,都可以在ArrayList 中添加新的EditText。当用户向上或向下按下时,您只需将ArrayList 的索引沿正确方向更改为 1。

      我想这将是一种非常低效的方法,但很容易定义 up 和 down 做什么。如果不看更多代码,很难说出更多关于应该做什么的信息。

      【讨论】:

      • 不,我只是在创建一个软自定义键盘,而没有创建 EditText。这就是为什么我无法实现上下光标..对如何做到这一点有任何帮助吗?
      猜你喜欢
      • 2010-09-21
      • 2020-04-16
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      相关资源
      最近更新 更多