12

我有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 的链接失败”、“找不到类 ./Map 引用自方法 ./Main.run”和“VFY:无法解析 const-class 37”

4

4 回答 4

20

您可以像这样使用,并且不要忘记将这两个活动添加到 AndroidManifest.xml:

Intent launchNewIntent = new Intent(CurrentClass.this,SecondClass.class);
startActivityForResult(launchNewIntent, 0);
于 2011-06-04T08:34:11.803 回答
3

你试过这种方法吗?

Intent intent = new Intent(Main.this, Map.class);
于 2010-12-16T03:00:10.133 回答
2
case R.id.home:
    startActivity(new Intent(main.this, map.class));
    return true;
于 2013-08-29T16:26:58.653 回答
1

您必须将此行实施到您的清单中

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

如果你已经这样做了,那你就做错了!它必须在<application> </application>标签内。否则你会得到你的错误

于 2012-02-14T19:27:11.947 回答