我有一个自定义列表视图,以及一个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();
使用硬件键盘时,这在仿真器上按预期工作。
我在手机上使用虚拟键盘测试了它,发现新值会在几分之一秒内正常显示,然后恢复(淡入淡出)为旧值。
如果启用虚拟键盘,模拟器中会发生同样的事情。
在对话框中按“确定”之前,我已尝试不在虚拟键盘上点击“完成”/点击“完成”,这是相同的行为。
我用谷歌搜索并没有发现任何关于此的事情。任何人都知道发生了什么事?
答案 0 :(得分:0)
我不确定为何使用硬件键盘,但我发现它不能使用虚拟键盘的原因是我需要通过自定义适配器设置文本TextView直接设置。