【问题标题】:Android start activity on Menu Item selectionAndroid 在菜单项选择上开始活动
【发布时间】:2011-05-26 07:17:00
【问题描述】:

我有 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”

【问题讨论】:

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


    【解决方案1】:
    case R.id.home:
        startActivity(new Intent(main.this, map.class));
        return true;
    

    【讨论】:

      【解决方案2】:

      你可以这样使用,别忘了把这两个activity都添加到AndroidManifest.xml:

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

      【讨论】:

        【解决方案3】:

        你必须在你的清单中实现这一行

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

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

        【讨论】:

          【解决方案4】:

          你试过这种方法吗?

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

          【讨论】:

            猜你喜欢
            • 2012-07-20
            • 1970-01-01
            • 1970-01-01
            • 2011-05-19
            • 1970-01-01
            • 2018-12-16
            • 2020-10-17
            • 1970-01-01
            • 2012-01-24
            相关资源
            最近更新 更多