0

我的应用中有一个包含 ListView 的视图。有时,当活动开始或恢复时,列表中的一行会突出显示,如果我按下 Enter 键(在我设备的物理键盘上),那么它会单击该行。我试图覆盖主视图或列表的 OnKeyListener 或将其设置为 null 但它没有改变任何东西。我怎样才能做到这一点?

编辑:对不起,如果不清楚。

我希望 ListView 对点击做出反应,但前提是我触摸屏幕,而不是当我按下回车键时。而且我不希望列表对物理箭头键做出反应。基本上,应该以除触摸屏幕之外的任何其他方式聚焦或单击一行。

4

3 回答 3

0

这不是 100% 正确的,但由于我的视图只有一个 ListView,所以下面的代码做了我想要的:

menuListView.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            switch (keyCode) {
            case KeyEvent.KEYCODE_ENTER:
                return true;
            }

            return false;
        }
    });
于 2012-08-27T12:38:17.653 回答
0

尝试将焦点设置到屏幕上的另一个视图。

于 2012-08-22T15:05:28.950 回答
0

这不是 100% 清楚,但我想你希望你的 ListView不对行的点击做​​出反应。最好在适配器上为 .areAllItemsEnabled() 返回 false ,为.isEnabled()每一行返回 false 。这样,您可以关闭列表中行上不需要的交互。

于 2012-08-22T15:08:10.347 回答