为什么我的android应用程序上的IME与它应该编辑的EditText不关联?

为什么我的android应用程序上的IME与它应该编辑的EditText不关联?,android,focus,android-layout,android-edittext,ime,Android,Focus,Android Layout,Android Edittext,Ime,我正在编写一个Android应用程序。它有一个ListActivity,所有设置都是为了使用此布局为每个项目加载数据 我的数据适配器绑定没有问题,我已经设置好了它,这样当从列表中选择一个项目时,就会调用这个方法 private void showPasswordBox(View v) { EditText passwordBox = (EditText)v.findViewById(R.id.hidden_box); Button passwordSubmit = (Butt

我正在编写一个Android应用程序。它有一个ListActivity,所有设置都是为了使用此布局为每个项目加载数据

我的数据适配器绑定没有问题,我已经设置好了它,这样当从列表中选择一个项目时,就会调用这个方法

private void showPasswordBox(View v) {
 EditText passwordBox = (EditText)v.findViewById(R.id.hidden_box);
 Button passwordSubmit = (Button)v.findViewById(R.id.hidden_box_submit);

 passwordSubmit.setText("Login");
 passwordSubmit.setVisibility(View.VISIBLE);

 passwordBox.setFocusableInTouchMode(true);

 passwordBox.setHint(R.string.password);
 passwordBox.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
 passwordBox.setVisibility(View.VISIBLE);
}
这具有显示和编辑文本以及按钮(我的布局中的隐藏框和隐藏框提交)的效果。这正是我想要的

但是,当用户点击新可见的编辑文本(隐藏的文本框)时会出现问题。IME弹出,隐藏的_框立即失去焦点。因此,输入法中键入的任何内容都不会显示在编辑文本中。相反,它做了一件奇怪的事情,输入的任何东西都会以灰色字母出现在键盘上方,当输入法被取消时,它们会留在屏幕底部。这就像输入法在自己的临时不可见框中输入一样

如果用户在IME已经显示后点击EditText,则应用程序将按其应有的方式运行。输入法中键入的任何内容都会显示在编辑文本中,并在输入法被取消时保留

在我看来,当IME弹出时(当用户点击EditText时,它会立即弹出,这是它应该做的),它会完全与我的应用程序解除关联,并在IME la la land中执行它的操作,除非我在键入和关闭键盘之前通过点击EditText将其指向EditText。如何使其正常运行,以便它一弹出就直接键入EditText

       passwordBox.setFocusableInTouchMode(true);

希望这能奏效。是吗?

恐怕不是。我的原始代码没有这一行,但我添加了它,希望它能解决这个问题。