Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “优先活动中的有效碎片”;方法不重写其超类的方法;_Android_Preferenceactivity - Fatal编程技术网

Android “优先活动中的有效碎片”;方法不重写其超类的方法;

Android “优先活动中的有效碎片”;方法不重写其超类的方法;,android,preferenceactivity,Android,Preferenceactivity,我已经搜索过PreferenceActivity必须重写isValidFragment方法,我理解这个概念,但是当我重写该方法时,我得到一个错误,它说:方法不重写其超类的方法。为什么它在超类中找不到该方法 现在我只是试图返回true(我知道这不是应该的方式,但我可以在以后让它工作时修复) 当我这样做时,@Override会得到一个红色下划线,上面引用的错误就是我在下划线上方悬停时看到的错误 目前,我已将targetapi降低到18,这样就不需要该方法,但我知道由于安全问题,这不是一个很好的解决方

我已经搜索过PreferenceActivity必须重写
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;
    }
}