菜单项选择的Android启动活动

时间:2010-12-16 02:00:41

标签: android menu android-activity android-intent android-2.1-eclair

我有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的基本类,map类是扩展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 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:3)

你试过这种方式吗?

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

如果你这样做了,你做错了!它必须在<application> </application>标记内。否则你会收到错误