Android的 - 从更高版本的API重写方法和支持较低API版本
问题描述:
我喜欢听在我的Android应用程序很长的按键,并从Android 2.0的有一个方法Android的 - 从更高版本的API重写方法和支持较低API版本
public boolean onKeyLongPress(int keyCode, KeyEvent event)
覆盖。但是如果我的应用绝对必须支持API 4(Android 1.6),我该怎么办?我知道我可以使用反射调用API方法,但我很确定我无法用反射进行覆盖。
答
最简单的是编写自定义视图类的两种实现方式,说:
MyCustomViewBasic extends View {
private MySharedImplementation impl;
}
MyCustomViewKeyLongPress extends View {
private MySharedImplementation impl;
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
// Do something exciting
}
}
这两种实现可以共享尽可能多的实现细节成为可能,同时确保任何API级别4中没有不在共享实现中。
然后有两个xml布局,一个用于API级别4,另一个用于API级别4及以上。在API级别4的布局中使用MyCustomViewBasic,在API级别4和以上级别中使用MyCustomViewKeyLongPress中的MyCustomViewBasic
答
为什么不只是删除方法上方的@Override
注释? Android 1.6会忽略它,2.0仍然会正确解释它。
+0
重写函数不是困难的部分......这种事件需要使用super.onKeyLongPress()在它的内部,以便正确处理链的事件。 Android
不幸的是我想这样做的活动 – Axarydax