Android:如何允许在非触摸屏设备上的 ListView 中导航?

标签 android listview keyboard touchscreen

我想摆脱 Android Market 过滤器 android.hardware.touchscreen 以允许在非触摸屏设备(仅限具有键盘导航的设备)上下载我的应用程序。

没有那么多不是触摸屏的设备,但有一些...

除了 ListViews,我的应用程序可以使用键盘...我希望用户只能使用键盘在我的 ListView 中导航。也就是说,他必须能够在 listView 中滚动 => 滚动时必须连续突出显示不同的单元格。

怎么做?

谢谢!!

最佳答案

或许您可以创建一个 onKeyListener。它是这样的:

private class myListKeyListener implements onKeyListener {
    @Override
    public boolean onKey(View arg0, int arg1, KeyEvent arg2) {

        if (KeyEvent.ACTION_DOWN == arg2.getAction()) {
            switch (arg1) {
            case KeyEvent.KEYCODE_DPAD_UP: {

                    int i = list.getSelectedItemPosition();
                    if (i > 0)
                        i--;
                    list.setSelection(i);
                    break;}
}

向下、向右、向左都是一样的……你可以用它做你想做的事

之后,在 onCreate 方法中将监听器附加到您的列表:

list.setOnKeyListner(new MyListKeyListener);

希望对你有帮助;)

关于Android:如何允许在非触摸屏设备上的 ListView 中导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7204531/

相关文章:

java - Arraylist 索引越界异常

c# - 如何禁用 Listview 自动查找您键入的内容

c# - 有没有一种简单的方法将事件与 ListViewItem 关联?

java - 如何区分JavaFX中的左/右shift、ctrl、alt和enter键?

ios - 当 View 出现在屏幕上时,如何让键盘将 View 向上推? Xcode swift

Android 应用程序没有响应后退按钮

android - 如何在android中将路径绘制到 View 中

python - pygame 模块 'pygame.event.get()' 不适用于方法吗?

android - 如何通过异步任务传递参数?

android - android 上的 opengl es 颜色选择不闪烁