当应禁用第一个列表项时,需要在Android列表中关注焦点

时间:2010-08-23 23:20:12

标签: android listview focus

我在Android应用程序中使用选项卡,其中一个选项卡包含listview。当我在列表的适配器中覆盖isEnabled然后尝试使用D-pad在列表中向上和向下移动到我的选项卡时,我注意到一些奇怪的行为。

如果启用了列表的第0项,那么一切都按预期工作 - 我可以向下移动列表,然后再向上移动,一旦我到达列表顶部,按下移动焦点到我的选项卡。< / p>

但是,如果第0项是DISABLED(我的适配器中的isEnabled返回false),那么当我按下位置​​1聚焦时,焦点会卡住。它没有像我预期的那样向上移动到选项卡,而是保持在列表的第1位。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

覆盖onKeyDown(...)方法。检查向上键/向上滚球。如果禁用了以上所有列表项,请将焦点设置为选项卡。

注意:你可能不得不做同样的事情,我不确定。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    switch(keyCode){
    case KeyEvent.KEYCODE_DPAD_UP:
        if(/*all the above list items are disabled*/)
        {
            //focus on tab
        }
    }
    return super.onKeyDown(keyCode, event);
}