我已经搜索了PreferenceActivity必须覆盖isValidFragment
方法,我理解了这个概念,但当我覆盖该方法时,我收到一条错误消息:Method does not override method of its super class.
为什么找不到超类中的方法?
现在我只是试图返回true(我知道这不是它应该完成的方式,但是我可以在以后开始工作时解决这个问题)
public class SettingsMenu extends PreferenceActivity
{
...
@Override
protected boolean isValidFragment (String fragmentName)
{
return true;
}
}
当我这样做的时候,@ Override会得到一个红色的下划线,并且当我将鼠标悬停在下划线上时,上面引用的错误就是我所看到的。
目前我已将targetapi
降低到18,因此不需要该方法,但我知道由于安全问题,这不是一个好方法。
答案 0 :(得分:2)
将您的构建目标(例如,项目>属性> Eclipse中的Android,compileSdkVersion
中的build.gradle
)设置为API级别19或更高级别。我的猜测是你的设置低于那个。
答案 1 :(得分:0)
我也遇到了这个问题。你的问题帮助我决定我不会发疯。在我的情况下,我发现我的Project的Android Project Build Target设置为Android 4.0.3 / API Level 15(我的minSdkVersion),但它似乎需要是Android 4.4.2 / API Level 19(targetSdkVersion)
设置项目构建目标:
在我自己找到这个答案之后,我还发现了以下答案,这加强了对项目构建目标应与targetSdkVersion Difference between "Build Target SDK" in Eclipse and android:targetSdkVersion in AndroidManifest.xml?
匹配的期望targetSdkVersion的开发人员参考似乎是http://developer.android.com/guide/topics/manifest/uses-sdk-element.html,但我无法找到项目构建目标所需的特定参考,以匹配targetSdkVersion。
FWIW这个答案的另一个线索就是当我尝试将minSdkVersion设置为19.然后,Eclipse在AndroidManifest.xml上报告了一个警告:&n;属性minSdkVersion(19)高于项目目标API级别(15) &#39 ;.正是这条线索让我意识到我在正确的轨道上,但应该看看Eclipse项目设置。
发帖后我意识到马克的答案是一样的,但直到现在他的简洁并不清楚。