Android ActivityNotFound异常-已声明活动
我这样做是为了当用户单击列表视图中的某个项目时,他们会被带到另一个显示该项目的活动。然而,当我测试它时,它抛出ActivityNotFound异常,即使我在清单中已经明确定义了它。其他任何课程都不会发生这种情况。有没有关于如何修复的想法?下面是导致错误的代码行,特别是ctx.StartActivityAndroid ActivityNotFound异常-已声明活动,android,Android,我这样做是为了当用户单击列表视图中的某个项目时,他们会被带到另一个显示该项目的活动。然而,当我测试它时,它抛出ActivityNotFound异常,即使我在清单中已经明确定义了它。其他任何课程都不会发生这种情况。有没有关于如何修复的想法?下面是导致错误的代码行,特别是ctx.StartActivity listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItem
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id ){
xMessage = (String) parent.getItemAtPosition(position);
y = true;
setView(xMessage,R.layout.messageclicked, R.id.mS);
ctx.startActivity(new Intent(getActivity(),showMessage.class));
}
});
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
xMessage=(字符串)parent.getItemAtPosition(位置);
y=真;
setView(xMessage,R.layout.messageclicked,R.id.mS);
startActivity(新的意图(getActivity(),showMessage.class));
}
});
这是我声明类的清单部分:
<activity android:name = "com......showMessage" />
这个。。。。。。有没有办法隐藏敏感信息。基本上是com.x.y.showRide,这是此活动的正确文件路径。这是舱单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="......."
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" >
<activity
android:name="com.......SplashScreen"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.........MainMenu"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" />
<activity
android:name="com........Register"
android:configChanges="orientation|keyboardHidden"
android:parentActivityName=".MainMenu"
android:screenOrientation="portrait"
android:theme="@style/.....Theme" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainMenu" />
</activity>
<activity
android:name="com......SignIn"
android:configChanges="orientation|keyboardHidden"
android:parentActivityName=".MainMenu"
android:screenOrientation="portrait"
android:theme="@style/......Theme" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainMenu" />
</activity>
<activity android:name="com......MainNavigation" />
<activity android:name="com........MainScreen" />
<activity android:name="com.......MainActivity" />
<activity
android:name="com.RuMad.......FindARide"
android:label="@string/title_activity_find_aride" >
</activity>
<activity android:name=".OfferRide"/>
<activity android:name=".RequestRide"/>
<activity android:name ="com......Compose"/>
<activity android:name ="com.......IntendedUses"/>
<activity android:name ="com.......showPreference"/>
<activity android:name = "com.......myRides"/>
<activity android:name = "com.......showMessage"/>
<activity android:name ="com......OffRe"/>
<activity android:name = "com......showRide" />
</application>
</manifest>
假设您当前的活动是MainActivity,请使用此行
startActivity(new Intent(MainActivity .this,showMessage.class))
解决此问题的一种方法是: 在承载此片段的活动中,创建一些函数,例如
public void startShowMessageActivity(){
Intent intent = new Intent(this, showMessage.class);
startActivity(intent);
}
在您的fragment类中,使用活动的上下文-ctx调用此方法,我相信(在您的代码中)
因此,本质上说,假设活动是MainActivity.java
(MainActivity(ctx)).startShowMessageActivity();
如果上述语句不起作用,请尝试
MainActivity obj = (MainActivity)getActivity();
obj.startShowMessageActivity();
希望这有帮助 您能显示完整的崩溃日志和清单文件吗?尝试使用getApplicationContext()而不是getActivity()?请发送您当前活动和清单的代码。我不知道如何在不发布屏幕截图的情况下显示完整的崩溃日志,我不能这么做,因为我的声誉不够高。试着清理一下你的项目,你确定吗?他正在调用getActivity,它只在片段中可用。因此,他试图从一个片段开始活动不,我不是,只是猜测,因为他没有发送完整的代码,即使我请求,请查看评论当我尝试使用您的方法时,它说我需要使方法静态,但startActivity()无法在静态方法中使用,因为它是非静态的OK..因此您可以创建MainActivity的实例(MainActivity对象=(MainActivity)getActivity),然后使用此对象调用函数。(object.startShowMessageActivity();)此外,还编辑了答案以包含上述注释。如果有问题,请告诉我