为什么移动textview焦点在按钮功能中工作而在onKeyListener中不起作用?

时间:2015-05-22 21:50:03

标签: android focus

我有这个表单,您可以在列表中添加多个名称。我有两个编辑文本,名字和姓氏。单击添加按钮时,焦点将从姓氏移回到第一个名称。效果很好:

public void onAddBtnClick(View v) {
     addNameToList();
     TextView txtFirstName = (TextView) findViewById(R.id.txtFirstName);
     Selection.setSelection((Editable) txtFirstName.getText(), txtFirstName.getSelectionStart());
     txtFirstName.requestFocus();
     }

这里没问题。但是,当用户点击" Next"时,我希望它能做同样的事情。键盘内的按钮,即输入按钮。在这里,它执行addNameToList()中的所有函数,并遍历代码中的下几行。但它并没有从第二个文本视图中删除焦点:

EditText etLastName = (EditText) findViewById(R.id.txtLastName);

    etLastName.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER)) {
                Button btn = (Button) findViewById(R.id.btnAdd);
                btn.performClick();
            }
            return true;
        }
    });

如您所见,我尝试执行performClick以查看是否可行,但它仍然保持焦点。我也尝试将焦点代码放在那里。无论如何我可以让它在输入上做同样的动作吗?

0 个答案:

没有答案