如何从一个应用的界面跳到另一个应用的界面

来源:互联网 发布:淘宝网挣钱吗 编辑:程序博客网 时间:2024/04/29 00:09

有时我们需要在一个应用中跳到另外一个应用的指定界面,其实实现的方式很简单,跳转的情况有以下几种:

   第一种:从一个应用跳到另一个应用的主activity。

ComponentName componentName = new ComponentName("com.example.tiaozhuan",         "com.example.tiaozhuan.MainActivity");Intent intent = new Intent();Bundle bundle = new Bundle();  bundle.putString("keystring", "shuju");  intent.putExtras(bundle);  intent.setComponent(componentName);startActivity(intent);
//组件名称,第一个参数是要跳转的应用程序的包名,后一个是这个应用程序的主Activity所在的包名的位置。这两个包名也许是不一致的。

注意点:需要注意应用程序的包名以及应用程序的主Activity所在的包名是否正确,他们两个不一定一致,要跟你的应用的包名和activity名称一一对应。


   第二种:从一个应用跳到另一个应用的非主activity,则需要action来指明。

ComponentName componentName = new ComponentName(        "com.example.tiaozhuan", "com.example.tiaozhuan.TextActivity");Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putString("keystring", "shuju");intent.putExtras(bundle);  intent.putExtra("word", "helloworld");intent.setAction("com.example.tiaozhuan.TextActivity");intent.setComponent(componentName);startActivity(intent);

1.在A应用的activity中,指明action

第一个应用程序的包名,第二个是activity所在的位置。 他们的包名也许不一样,一个是清单文件里面的入口的哪里的。一个是src文件下的包名哪里的。如果自己不做改变一般是一样的。

2.在B应用的配置文件中,给此activity加上intentFilter,两个标签分别是action和category,这个action的值跟A应用中activity中intent.setAction的内容一致。这样才能匹配。

<activityandroid:name="com.example.tiaozhuan.TextActivity"android:label="@string/app_name"android:screenOrientation="landscape" ><intent-filter><action android:name="com.example.tiaozhuan.TextActivity" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>
注意点:B应用记得改变了清单文件,所以需要重新安装运行。



    第三种:从一个应用跳到另一个应用的activity,或者在清单文件里面,在这个activity的标签里面加一句exported=true。那样就不同指明action了。

<activityandroid:name="com.example.tiaozhuan.TextActivity"android:label="@string/app_name"android:exported="true"android:screenOrientation="landscape" ><!--  <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> --></activity>



1 0
原创粉丝点击