如何在自定义Android键盘中定义向上和向下箭头
问题描述:
我已经创建了Android键盘,并且我正在创建箭头来移动用户输入中的光标,我可以左右移动,但我无法知道如何编写代码的上下..这里是代码如何在自定义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和up?
答
如果你只是想移动光标
尝试使用sendDownUpKeyEvents方法
sendDownUpKeyEvents(KeyEvent.KEYCODE_DPAD_RIGHT);
只会做的工作。
答
首先,我建议做这样的事情来检查按键
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
中。然后,每次添加新行时,可以将新的EditText
添加到ArrayList
。当用户向上或向下按下时,只需按照正确的方向将ArrayList
的索引更改为1即可。
我想这样做会是一种非常低效的方式,但是很容易定义向上和向下做什么。如果没有看到更多的代码,就很难多说你应该做什么。
不,我创建只是一个软的自定义键盘没有创建一个EditText ..这就是为什么我不能实现向下和向上游标..有没有任何帮助的想法,这可以做到这一点? –