我在使用Android的Intent对象时遇到了问题。
我基本上是在尝试推出另一项活动:
My Activity,MapActivity使用MapEventListener,它提供了基于MapActivty Activity中呈现的地图来侦听事件的函数。如果在地图上按下标记,则启动MapEventListener的功能。
我这个函数我正在尝试实现一个启动另一个激活的Intent对象。
这是函数的代码:
@Override
public void onVectorElementClicked(VectorElement arg0, double arg1,
double arg2, boolean arg3) {
Intent intent = new Intent(MapActivity.this, DetailPerspectiveActivity.class);
activity.startActivity(intent);
}
这是清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.hsrw.landschaftsbilder"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><application android:icon="@drawable/icon" android:label="@string/app_name" android:allowBackup="false">
<activity android:name=".activities.MapActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".activities.GraphhopperRouteTestActivity">
</activity>
<activity android:name=".activities.DetailPerspectiveActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
我很确定问题是关于“MapActivity.this”但如果我将其更改为MapActivity.this在清单中代码仍然无法编译。这就是eclipse关于第一个论点的说法:
在范围
中无法访问MapActivity类型的封闭实例提前致谢!
答案 0 :(得分:0)
在您的活动中,尝试将Intent intent = new Intent(.activities.MapActivity.this, .activities.DetailPerspectiveActivity.class);
更改为Intent intent = new Intent(MapActivity.this, DetailPerspectiveActivity.class);
(即MapActivity和DetailPerspectiveActivity)。
答案 1 :(得分:0)
您的manifest.xml文件包含问题。你已宣布两个活动作为启动器,这将无法正常工作
修改manifest.xml代码如下。
而不是关注
<activity android:name=".activities.MapActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".activities.GraphhopperRouteTestActivity">
</activity>
<activity android:name=".activities.DetailPerspectiveActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
使用以下代码
<activity android:name=".activities.MapActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".activities.GraphhopperRouteTestActivity">
</activity>
<activity android:name=".activities.DetailPerspectiveActivity">
</activity>
修改: 这行在您的代码中起什么作用。
Intent intent = new Intent(.activities.MapActivity.this, .activities.DetailPerspectiveActivity.class);
通常采用以下方式
Intent intent = new Intent(FIRST_ACTIVITY.this, SECOND_ACTIVITY.class);
在你的情况下,我认为它应该是
Intent intent = new Intent(MapActivity.this, DetailPerspectiveActivity.class);