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>
тег. В противном случае вы получите ошибку