2

我有以下问题:

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

@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

有人知道我能做什么吗? 或者也许有人可以指出一个教程,在那里我可以找到更多关于这个问题的信息?

谢谢,阿克德

4

1 回答 1

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){

                                } 
                            }
                        };
于 2012-07-26T11:43:08.023 回答