在输入时,跳转到下一个EditText问题

时间:2013-06-18 21:11:56

标签: java android

我有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而不是去布局中的第一个子进入第二行..

2 个答案:

答案 0 :(得分:0)

您的xml中定义的编辑文本是否按照相应的顺序进行了编辑? 如果这不起作用,你可以使用

android:nextFocusDown

设置顺序

答案 1 :(得分:0)

你为什么不用:

et1.requestFocus();

而不是

l1.getChildAt(localizarer).requestFocus();