我在线性布局中放置了一个 ListView ,我想在ListView中重写onkeydown()方法
,而且我无法控制焦点,只需更改onkeydown()中的一些变量,我希望系统执行好像没有覆盖onkeydown方法的方法。我该怎么办?返回false?或返回super.onkeyDown()?。这对任何帮助都非常好。先感谢您。

有三个 ListView ,而a b c是三个 ListView 。当c被聚焦时,当我在键盘上按向左箭头时,默认情况下会获得焦点。我想让listview2中的第一项成为焦点,我该怎么办?

最佳答案

ntc 不完全正确。操作系统不使用反射来获取您的基类的处理程序。

如果返回false,则明确告诉OS不想处理此事件;否则,返回false。然后,操作系统调用View的父处理程序(如您的测试所示);直到事件得到处理或到达顶 View 为止。

如果调用super.OnKeyDown(),则允许基类处理事件。注意,它是基类的处理程序,提供相同的 View ,而不是父 View 。不要混淆这里。

因此,使用其中一个取决于您所需的 View 行为。

我认为你需要return super.onKeyDown();

关于android - Onkeydown返回false和return super.onkeydown()有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7411079/

10-12 00:23