【发布时间】:2014-10-27 22:55:44
【问题描述】:
我有一个自定义列表视图和一个 OnItemClickListener。我有一个 TextView listViewRightText 变量,它跟踪 listview 每一行右侧的 textView。
这个想法是有一个带有 TextView 的 AlertDialog,当用户点击 OK 时,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();
使用硬件键盘时,这在模拟器上可以正常工作。
我在手机上使用虚拟键盘对其进行了测试,发现新值会在几分之一秒内正确显示,然后恢复(淡出)为旧值。
如果我启用虚拟键盘,模拟器中也会发生同样的事情。
我试过在对话框上按“确定”之前不要在虚拟键盘上点击“完成”/点击“完成”,这是相同的行为。
我在 Google 上搜索并没有发现任何关于此的信息。有人知道发生了什么吗?
【问题讨论】: