【问题标题】:Android Virtual Keyboard and Listener reverting values?Android虚拟键盘和监听器恢复值?
【发布时间】: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 上搜索并没有发现任何关于此的信息。有人知道发生了什么吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    我不确定为什么这与硬件键盘一起使用,但我发现它无法与虚拟键盘一起使用的原因是我需要通过自定义适配器设置文本 TextView 而不是直接设置.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2021-02-11
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多