java - Android:重写更高 API 级别的方法

标签 java android overriding

如何重写仅在比我的最低级别更高的 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/

相关文章:

java - 使用覆盖方法

java - ArrayList.add() 不添加,不返回错误

java - 更新 hibernate 中的查询

java - 如何将Entity ArrayList转换为DTO ArrayList

java - 为什么 Eclipse 不允许我为 2.1 EJB 项目选择 EJB 客户端 JAR?

android - Firebase 远程配置值的自定义验证逻辑?

java - startRecording() 在未初始化的 AudioRecord 上调用

java - 出现错误 NoSuchElementException : Unable to locate element: in "big.findElement(By.xpath("//*[@id ='rso' ]/div[1]/div/div/h3/a")). click();"

android - 如何将单选按钮居中对齐

c++ - 为什么如果没有显式范围解析,父类的父方法就无法访问?