我在listlayout中放了一个列表视图,我想在ListView中覆盖onkeydown()方法 ,我不控制焦点,只是改变onkeydown()中的一些变量,我希望系统做就好像我没有覆盖onkeydown方法。我该怎么做?返回false?或者返回super.onkeyDown()?对于任何帮助都会非常好。提前谢谢你。
有三个列表视图,而b c是三个列表视图项。当c聚焦时,当我按下键盘上的左箭头时,默认情况下获得焦点。我希望listview2中的第一项获得焦点,我该怎么办?
答案 0 :(得分:2)
ntc 并不完全正确。操作系统不使用反射来获取基类的处理程序。
如果您返回false,则明确告诉操作系统您不想处理此事件;操作系统调用View的父处理程序(如测试所示);这种情况发生在事件被处理或达到顶视图之前。
如果调用super.OnKeyDown(),则允许基类处理事件。请注意,它是一个基类的处理程序,提供相同的视图,而不是父视图;不要在这里混淆。
因此,使用其中一个取决于您的视图所需的行为。
在你的情况下,你需要return super.onKeyDown();
答案 1 :(得分:0)
super.onkeyDown()
- 这会让超类负担按照你自己的意愿来处理onKeyDown
事件(你明确地说要处理它)。当你返回false
时,android假定你没有处理onKeyDown
事件,默认情况下会调用super.onKeyDown()
(不用你调用它)。