我有这段代码
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
{
int b = v.getId();
switch (v.getId())
{
case R.id.EditTextSurname:
EditTextName.requestFocus();
break;
case R.id.EditTextName:
// TODO pass to remark
break;
case R.id.EditTextRemark:
// TODO Hide keyboard
break;
}
}
return true;
}
我正在听我的editText的回车键。我想按下回车键时传递下一个编辑文本。但如果在// TODO传递给评论
我设置
EditTextRemark.requestFocus();
我可以在调试中看到它传递了第一个请求焦点而没有再次单击输入它将传递给下一个editText。 如果有人为我解释一个解释?感谢。
答案 0 :(得分:0)
好吧我发现了这个问题,你需要声明事件Action,(键已被按下)或者它会终生传递onkey。
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
{
switch (v.getId())
{
case R.id.EditTextSurname:
EditTextName.requestFocus();
break;
case R.id.EditTextName:
EditTextRemark.requestFocus();
break;
case R.id.EditTextRemark:
hideSoftKeyboard();
break;
}
}
return true;
}