我在第一个包中有活动A,我想运行一个意图,它将启动一个活动B,它在第二个包中.
我怎样才能做到这一点?欢迎任何样品.
这就是我所做的,我得到的错误:
包中的第一个活动("MainActivity"):com.abelski.currencyclient和第二个活动(不同包中的"SecondActivity":com.idan.second
现在我想从MainActivity打电话给SecondActivity.
香港专业教育学院在MainActivity的清单中添加了这一行:
<activity android:name="com.idan.second.SecondApplicationActivity"></activity>
Run Code Online (Sandbox Code Playgroud)
现在在主Activity中我得到了这个按钮来运行这一行:
Intent intent = new Intent(MainActivity.this,SecondApplicationActivity.class);
Run Code Online (Sandbox Code Playgroud)
这就是恐怖:
04-29 09:20:59.197: ERROR/AndroidRuntime(399): Uncaught handler: thread main exiting due to uncaught exception
04-29 09:20:59.276: ERROR/AndroidRuntime(399): java.lang.NoClassDefFoundError: com.idan.second.SecondApplicationActivity
04-29 09:20:59.276: ERROR/AndroidRuntime(399):
Run Code Online (Sandbox Code Playgroud)
小智 22
我假设通过"包"你的意思是申请.
我们有: - 带有FirstActivity的ApplicationA - 带有SecondActivity的ApplicationB
如果在ApplicationB的AndroidManifest.xml文件中,在SecondActivity的声明中添加了一个intent过滤器,例如:
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="applicationB.intent.action.Launch" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
您可以创建一个Intent以从FirstActivity启动此SecondActivity:
Intent intent = new Intent("applicationB.intent.action.Launch");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这一切意味着什么:
该文档位于:https: //developer.android.com/reference/android/content/Intent.html
小智 9
我有同样的问题,解决方案是包名根目录中的另一个级别.
如果你有两个软件包"com.first ...."和"com.second ...",那么清单就是引用"com.first".然后,您可以重构两个包,以便重用第一部分.例如,"com.package.first"和"com.package.second".然后你的清单也必须更新
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package">
...
<activity android:name=".first.FirstPackageActivity" android:label="FirstPackageActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".second.SecondPackageActivity" android:label="SecondPackageActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
您的Java代码可以创建一个intent并以通常的方式启动活动:
Intent intent = new Intent(this,ActivityClassName.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45647 次 |
| 最近记录: |