Android 无法从NavigationDrawerFragmet启动首选项屏幕

Android 无法从NavigationDrawerFragmet启动首选项屏幕,android,navigation-drawer,preferences,Android,Navigation Drawer,Preferences,我已经从文件>新建>Android应用程序项目创建了NavigationDrawer活动。我选择了导航抽屉活动,一切顺利,直到我需要启动首选项屏幕。应用程序崩溃。 到目前为止,我所拥有的: 主要活动: ... case R.id.bSettings: Intent settingsActivity = new Intent(getBaseContext(), Preferences.class); StartActivity(settingsActivity); break; ... Pref

我已经从文件>新建>Android应用程序项目创建了NavigationDrawer活动。我选择了导航抽屉活动,一切顺利,直到我需要启动首选项屏幕。应用程序崩溃。 到目前为止,我所拥有的:

主要活动:

...
case R.id.bSettings:
Intent settingsActivity = new Intent(getBaseContext(), Preferences.class);
StartActivity(settingsActivity);
break;
...
Preferences.java:

public class Preferences extends PreferenceFragment {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    }
}
请注意,我不想要内联首选项,而是像新活动一样的首选项

09-22 13:57:57.125:W/EGL_genymotion(2120):eglSurfaceAttrib未实现 09-22 13:57:57.125:E/OpenGLRenderer(2120):从GradieCache获取最大纹理大小 09-22 13:57:57.137:E/OpenGLRenderer(2120):从缓存获取最大纹理大小::initConstraints() 09-22 13:57:57.137:D/OpenGLRenderer(2120):启用调试模式0 09-22 13:58:00.245:D/AndroidRuntime(2120):关闭虚拟机 09-22 13:58:00.249:W/dalvikvm(2120):threadid=1:线程退出时出现未捕获异常(组=0xa4ba8648) 09-22 13:58:00.273:E/AndroidRuntime(2120):致命异常:main 09-22 13:58:00.273:E/AndroidRuntime(2120):android.content.ActivityNotFoundException:找不到显式活动类{ba.arnes.aconverter/ag.android.aconvert.Preferences};您是否在AndroidManifest.xml中声明了此活动? 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Activity.startActivityForResult(Activity.java:3390) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Activity.startActivityForResult(Activity.java:3351) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Activity.startActivity(Activity.java:3587) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.Activity.startActivity(Activity.java:3555) 09-22 13:58:00.273:E/AndroidRuntime(2120):在ag.android.aconvert.MainActivity.onClick(MainActivity.java:545) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.view.view.performClick(view.java:4240) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.view.view$PerformClick.run(view.java:17721) 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.os.Handler.handleCallback(Handler.java:730)上 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.os.Handler.dispatchMessage(Handler.java:92)上 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.os.Looper.loop(Looper.java:137)上 09-22 13:58:00.273:E/AndroidRuntime(2120):在android.app.ActivityThread.main(ActivityThread.java:5103)上 09-22 13:58:00.273:E/AndroidRuntime(2120):位于java.lang.reflect.Method.Invokenactive(本机方法) 09-22 13:58:00.273:E/AndroidRuntime(2120):位于java.lang.reflect.Method.invoke(Method.java:525) 09-22 13:58:00.273:E/AndroidRuntime(2120):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 09-22 13:58:00.273:E/AndroidRuntime(2120):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 09-22 13:58:00.273:E/AndroidRuntime(2120):在dalvik.system.NativeStart.main(本机方法)
09-22 13:58:01.841:I/进程(2120):发送信号。PID:2120 SIG:9

您缺少AndroidManifest.xml中的活动声明

正如它所说:

13:58:00.273:E/AndroidRuntime(2120):android.content.ActivityNotFoundException:找不到显式活动类{ba.arnes.aconverter/ag.android.aconvert.Preferences};您是否在AndroidManifest.xml中声明了此活动

找不到首选项

编辑:

看起来您正在尝试启动
活动
,您的首选项类是
片段
。因此,基本上您需要一个活动类,其中在布局中有片段的占位符(例如,您的首选项类

布局可以如下所示:

<FrameLayout
    android:id="@+id/holder"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

谢谢你,伙计!你做对了,只要一点点改变

AndroidManifest.xml应为:

<activity android:name="add.full.name.PrefenecesActivity" />

而不是:

<activity android:name=".PrefenecesActivity" />


请提供一个日志,如果没有对实际问题的描述,我们不知道问题。您得到的异常堆栈跟踪是什么?是的,但我认为它不起作用,因为您正在尝试启动
活动
,而您的Prefences类是
片段
,我编辑了答案,如果这能帮你解决问题,请告诉我
case R.id.bSettings:
Intent settingsActivity = new Intent(getBaseContext(), PrefenecesActivity.class);
startActivity(settingsActivity);
break;
<activity android:name="add.full.name.PrefenecesActivity" />
<activity android:name=".PrefenecesActivity" />