尝试从菜单中打开新活动时出错

时间:2016-08-21 13:00:00

标签: android android-intent manifest start-activity

我正在尝试从主屏幕上的菜单中的所选选项移至新活动。这样做的代码是

public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
        case R.id.action_settings:
            Intent settingsIntent = new Intent(this, SettingsActivity.class);
            this.startActivity(settingsIntent);
            break;

活动在我的清单文件中设置,如下所示

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.test_controller">

<uses-permission android:name="android.permission.BLUETOOTH" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        android:screenOrientation="landscape"
        android:configChanges="keyboardHidden|orientation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <activity android:name=".SettingsActivity" />

应用程序在遇到错误

的startActivity行时立即崩溃
Unable to find explicit activity class {com.test.test_controller/com.test.test_controller.SettingsActivity}; have you declared this activity in your AndroidManifest.xml?

我已离开Android很长一段时间了,所以我无法理解为什么要将包名称放两次?我已经检查了我的设置,并且应用程序ID与清单中的包名称相同,所以我做错了什么?

3 个答案:

答案 0 :(得分:0)

在你的android清单中声明你的SettingsActivity:

<activity
     android:name=".SettingsActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
    </intent-filter>
</activity>

答案 1 :(得分:0)

</activity>之后添加此<intent-filter>代码,以便系统将其视为两项活动。

<activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        android:screenOrientation="landscape"
        android:configChanges="keyboardHidden|orientation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity> // add this tag here 
        <activity android:name=".SettingsActivity" />

答案 2 :(得分:0)

检查Manifest文件。 <activity>的{​​{1}}标记未关闭。

您的.MainActivity文件应如下所示。

Manifest

希望它有所帮助!!

相关问题