如何重写仅在比我的最低级别更高的 API 级别中存在的方法?
具体来说,我想重写一个扩展View类的类,并且我需要重写setBackground()方法。
- 但是当我使用 “@Override”注释时,我收到错误:
“错误:方法没有覆盖或实现父类(super class)型的方法”
- 当我不使用“@Override”注释时,我收到错误:
“此方法不会覆盖当前构建目标的任何内容,但会在 API 级别 16 中(当前目标为 10)”
最佳答案
将您的构建目标设置为 16 或更高。在 Eclipse 中,位于“项目”>“属性”>“Android”中。在 Android Studio 中,这是 build.gradle
文件中的 compileSdkVersion
。
然后,添加@Override
注释。
该方法不会在早期版本的 Android 上被调用(除非您尝试自己调用它,在这种情况下,您的实现需要解决这个问题,可能使用 IllegalStateException
或其他东西)。但它将覆盖 API 级别 16+ 上的正确方法。
关于java - Android:重写更高 API 级别的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005138/