0
我有一个自定义列表视图和一个OnItemClickListener。我有一个TextView listViewRightText变量,它跟踪listview每一行右侧的textView。Android虚拟键盘和监听器恢复值?
这个想法是有一个AlertDialog与TextView,当用户点击确定,listViewRightText项目将改变值。这是该部分的代码。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
....
final EditText input = new EditText(ActivityMainScreen.this);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
new AlertDialog.Builder(ActivityMainScreen.this)
.setTitle("Enter " + listViewLeftText.getText())
.setView(input)
.setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do Nothing
}
}).setNegativeButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
listViewRightText.setText(input.getText());
}
}).show();
这在使用硬件键盘时在仿真器上按预期工作。
我使用虚拟键盘在我的手机上测试过它,并注意到新值将在几分之一秒内正确显示,然后恢复(淡入)旧值。
如果启用虚拟键盘,模拟器中会发生同样的事情。
我试过在按下对话框上的“确定”之前没有在虚拟键盘上击中“完成”/击中“完成”,并且这是相同的行为。
我谷歌搜索,没有遇到任何关于此事。任何人都知道发生了什么事?