Android “优先活动中的有效碎片”;方法不重写其超类的方法;
我已经搜索过PreferenceActivity必须重写Android “优先活动中的有效碎片”;方法不重写其超类的方法;,android,preferenceactivity,Android,Preferenceactivity,我已经搜索过PreferenceActivity必须重写isValidFragment方法,我理解这个概念,但是当我重写该方法时,我得到一个错误,它说:方法不重写其超类的方法。为什么它在超类中找不到该方法 现在我只是试图返回true(我知道这不是应该的方式,但我可以在以后让它工作时修复) 当我这样做时,@Override会得到一个红色下划线,上面引用的错误就是我在下划线上方悬停时看到的错误 目前,我已将targetapi降低到18,这样就不需要该方法,但我知道由于安全问题,这不是一个很好的解决方
isValidFragment
方法,我理解这个概念,但是当我重写该方法时,我得到一个错误,它说:方法不重写其超类的方法。
为什么它在超类中找不到该方法
现在我只是试图返回true(我知道这不是应该的方式,但我可以在以后让它工作时修复)
当我这样做时,@Override会得到一个红色下划线,上面引用的错误就是我在下划线上方悬停时看到的错误
目前,我已将
targetapi
降低到18,这样就不需要该方法,但我知道由于安全问题,这不是一个很好的解决方案。将构建目标(例如,Eclipse中的Project>Properties>Android,build.gradle中的compileSdkVersion
)设置为API级别19或更高。我猜你的设置比这个低。我也有这个问题。你的问题帮助我决定我没有发疯。在我的例子中,我的项目的Android项目构建目标被设置为Android 4.0.3/API级别15(我的MinSDK版本),但它似乎需要Android 4.4.2/API级别19(targetSdkVersion)
要设置项目生成目标,请执行以下操作:
- 项目属性/Android/项目构建目标-检查Android 4.4.2
- 单击应用并确定
- Eclipse将希望重建
- 重新启动Eclipse/ADT
在我自己找到这个答案之后,我还找到了下面的答案,它强化了项目构建目标应该与targetSdkVersion匹配的期望
targetSdkVersion的开发者参考似乎是,但我找不到项目的构建目标需要与targetSdkVersion匹配的特定参考
FWIW这个答案的另一个线索是当我尝试将minSdkVersion设置为19时。Eclipse随后在AndroidManifest.xml上报告了一条警告,“属性minSdkVersion(19)高于项目目标API级别(15)”。正是这条线索让我意识到我走在了正确的道路上,但我应该看看Eclipse项目的设置
发帖后,我意识到马克的答案是一样的,但直到现在我才明白他的简短
public class SettingsMenu extends PreferenceActivity
{
...
@Override
protected boolean isValidFragment (String fragmentName)
{
return true;
}
}