我有3个EditTexts连续但有3种不同的布局。我设置它们,所以当我点击回车时,它将跳转到下一个布局上该行的下一个EditText。问题是,当我从行上的第一个EditText点击回车时,它会转到第三个。来自第三个是第二个,第二个到第一个。就像我按下第一个EditText上的enter,它进入第二个,然后进入同一个回车的第三个。 如何阻止它从第一个EditText跳到第二个,然后在同一个按下回车键的情况下跳第三个?
以下是我的一些代码:
et.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v1, int keyCode, KeyEvent KEYCODE_ENTER) {
l2.getChildAt(localizarer).requestFocus();
return true;
}
});
et2.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v2, int keyCode, KeyEvent KEYCODE_ENTER) {
l3.getChildAt(localizarer).requestFocus();
return true;
}
});
et3.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v3, int keyCode, KeyEvent KEYCODE_ENTER) {
l1.getChildAt(localizarer).requestFocus();
return true;
}
});
这就像我需要某种break
函数,哈哈。
我怎样才能解决这个问题 ?
谢谢你,祝你有个美好的一天/晚上!
通过这样做来解决:
et.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 key press
l2.getChildAt(localizarer).requestFocus();
return true;
}
return false;
}
});
但是现在又出现了一个较旧的问题,它跳转到我的第二行edittexts而不是去布局中的第一个子进入第二行..
答案 0 :(得分:0)
您的xml中定义的编辑文本是否按照相应的顺序进行了编辑? 如果这不起作用,你可以使用
android:nextFocusDown
设置顺序
答案 1 :(得分:0)
你为什么不用:
et1.requestFocus();
而不是
l1.getChildAt(localizarer).requestFocus();