Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么移动textview焦点在按钮功能中有效,而在onKeyListener中无效?_Android_Focus - Fatal编程技术网

Android 为什么移动textview焦点在按钮功能中有效,而在onKeyListener中无效?

Android 为什么移动textview焦点在按钮功能中有效,而在onKeyListener中无效?,android,focus,Android,Focus,我有一个表格,你在一个列表中添加多个名字。我有两个编辑文本,Firstname和LastName。单击“添加”按钮时,焦点从姓移回名。效果相当不错: public void onAddBtnClick(View v) { addNameToList(); TextView txtFirstName = (TextView) findViewById(R.id.txtFirstName); Selection.setSelection((Editable) txtFi

我有一个表格,你在一个列表中添加多个名字。我有两个编辑文本,Firstname和LastName。单击“添加”按钮时,焦点从姓移回名。效果相当不错:

public void onAddBtnClick(View v) {
     addNameToList();
     TextView txtFirstName = (TextView) findViewById(R.id.txtFirstName);
     Selection.setSelection((Editable) txtFirstName.getText(), txtFirstName.getSelectionStart());
     txtFirstName.requestFocus();
     }
这里没问题。但是,当用户点击键盘中的“下一步”按钮时,我希望它也能做同样的事情,即回车按钮。在这里,它执行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来看看这是否有效,但它仍然保持着焦点。我还试着把焦点代码放在那里。我是否可以让它在回车时执行相同的操作