Android запускает активность при выборе пункта меню

У меня есть 2 класса. Одним из них будет экран с основными инструкциями, и на этом экране будет меню, которое позволит вам перейти к другому классу. Другой класс - это MapActivity. Я считаю, что проблема в том, что его не найти другой класс. Я пробовал несколько разных способов заявить о намерении найти класс. Это последняя вещь, которую я пробовал:

@Override
public boolean onCreateOptionsMenu(Menu menu){        
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mainmenu, menu);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
    case R.id.goToMap:
        Intent intent = new Intent();
        intent.setClassName(Main.this, "Map.Class");
        startActivity(intent);
        return true;            
    }
    return false;
}

Это базовый класс, который расширяет Activity, а класс карты - это базовый класс, расширяющий MapActivity (может ли это вызвать проблемы?). И вот важная часть моего файла манифеста:

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Campus_Map"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Main" android:label="Instructions" ></activity>
    <activity android:name=".Map" android:label="Map">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>

</application>

Редактировать: Когда я смотрю на LogCat, чтобы выяснить, что происходит, я получаю java.lang.NoClassDefFoundError и несколько других сообщений, в которых говорится "Ссылка класса./Map fail", "Could Not find class ./Map" method ./Main.run"и"VFY: невозможно разрешить const-класс 37"

4 ответа

Решение

Вы можете использовать это так, и не забудьте добавить оба действия в AndroidManifest.xml:

Intent launchNewIntent = new Intent(CurrentClass.this,SecondClass.class);
startActivityForResult(launchNewIntent, 0);

Вы пробовали таким образом?

Intent intent = new Intent(Main.this, Map.class);
case R.id.home:
    startActivity(new Intent(main.this, map.class));
    return true;

Вы должны внедрить эту строку в свой манифест

<uses-library android:name="com.google.android.maps" />

Если вы уже сделали это, вы сделали это неправильно! Это должно быть в пределах <application> </application> тег. В противном случае вы получите ошибку

Другие вопросы по тегам