使用软键盘中的下一个键滚动到列表中的下一个项目

时间:2012-07-24 10:58:11

标签: android listview

我有以下问题:

我有一个包含自定义行的列表视图,每行有几个编辑文本(一个或两个)。 我想每次触摸软键盘上的下一个按钮时都能滚动到下一个元素。 我已经实现了以下代码:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {

    if (displayFlag == GuiConstants.GUI_QUICK_DISPLAY) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (event.getKeyCode()) {
                case KeyEvent.FLAG_EDITOR_ACTION: {
                    scrollToNext();
                    return true;
                }
            }
        }
    }
    return super.dispatchKeyEvent(event);
}

private void scrollToNext() {
    int currentPosition = listView.getFirstVisiblePosition();
    if (currentPosition == listView.getCount() - 1)
        return;
    listView.setSelection(currentPosition + 1);

}

问题是列表滚动并且工作得很好,直到必须创建一行(它还不可见)。此时,Next按钮被Done按钮替换。

有人知道我该怎么办? 或者也许有人可以指出一个教程,在那里我可以找到更多关于这个问题的内容吗?

谢谢, Arkde

1 个答案:

答案 0 :(得分:1)

在这里使用自定义EditText是可以帮助您的代码

EditText test = new EditText(context){


                            @Override
                            public void onEditorAction(int actionCode) {
                                // TODO Auto-generated method stub
                                super.onEditorAction(actionCode);

                                if(actionCode == EditorInfo.IME_ACTION_NEXT){

                                } 
                            }
                        };