7

我有2个课程。一个将是一个基本的说明屏幕,在该屏幕上它将有一个菜单,让你去其他课程。另一个类是MapActivity。我相信问题在于它没有找到其他阶级。我尝试了几种不同的方式来声明查找类的意图。这是我试过的最新的东西:(?可能是导致问题)Android菜单项目选择开始活动

@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; 
} 

其延伸活动和地图类是扩展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链接失败“,”找不到类./Map引用方法./Main.run“和”VFY:无法解析const-class 37“

回答

15

您可以使用像这样的,不要忘了这两个活动添加到AndroidManifest.xml中:

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

你试过这种方式吗?

Intent intent = new Intent(Main.this, Map.class); 
1

你要实现这一行到您的清单

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

如果你做到了这一点,你做错了!它必须位于<application> </application>标记内。否则你会得到你的错误

2
case R.id.home: 
    startActivity(new Intent(main.this, map.class)); 
    return true;