我想在我的Android应用程序中听一个长按键,从Android 2.0有一个方法
public boolean onKeyLongPress(int keyCode, KeyEvent event)
覆盖。但是,如果我的应用程序必须支持API 4(Android 1.6),我该怎么办?我知道我可以用反射调用API方法,但我很确定我不能用反射覆盖。
答案 0 :(得分:5)
为什么不删除方法上方的@Override
注释? Android 1.6会忽略它,2.0仍会正确解释它。
答案 1 :(得分:0)
最简单的方法是编写自定义视图类的两个实现,例如:
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