我们也可以使用隐士意图激活自定义的界面,并且可以携带数据:
效果:
点击第二个按钮后:
点击最后一个按钮(激活系统短消息界面)后:
附代码:
主窗体的代码:
1 package com.yy.twoactivity;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.net.Uri;
6 import android.os.Bundle;
7 import android.view.View;
8
9 public class MainActivity extends Activity {
10
11 @Override
12 protected void onCreate(Bundle savedInstanceState) {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.activity_main);
15 }
16
17 /**
18 * 点击事件,当用户点击的时候跳转到第二个界面
19 * @param view
20 */
21 public void click(View view){
22 //意图
23 Intent intent=new Intent();
24 //设置包和界面,显式意图
25 intent.setClassName(this, "com.yy.twoactivity.SecondActivity");
26 //跳转到新的设定好的界面
27 startActivity(intent);
28 }
29
30 /**
31 * 点击事件,当用户点击的时候隐式意图跳转到第二个界面
32 * @param view
33 */
34 public void click3(View view){
35 //意图
36 Intent intent=new Intent();
37 //设置包和界面,隐式意图
38 intent.setAction("com.yy.xxx");
39 //设置额外的信息【非必需,和主配置文件对应】
40 intent.addCategory(Intent.CATEGORY_DEFAULT);
41 //设置数据【非必须,和主配置文件对应,可以携带数据】
42 intent.setData(Uri.parse("yy:adbc"));
43 //跳转到新的设定好的界面
44 startActivity(intent);
45 }
46
47 /**
48 * 点击事件,激活系统的应用 程序界面
49 * @param view
50 */
51 public void click2(View view){
52 //意图
53 Intent intent=new Intent();
54 //设置预打开系统应用的包和界面,显式意图
55 // cmp=com.android.gallery/com.android.camera.GalleryPicker
56 intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker");
57 //跳转到新的设定好的界面
58 startActivity(intent);
59 }
60
61 /**
62 * 点击事件,当用户点击的时候隐式意图激活系统短消息
63 * @param view
64 */
65 public void click4(View view){
66 //意图
67 Intent intent=new Intent();
68 //设置包和界面,隐式意图
69 intent.setAction("android.intent.action.SENDTO");
70 //设置额外的信息【非必需,和主配置文件对应】
71 intent.addCategory("android.intent.category.DEFAULT");
72 //设置数据【非必须,和主配置文件对应,可以携带数据】,前缀是看短信息应用配置文件的scheme知道的
73 intent.setData(Uri.parse("sms:15588890908"));
74 //跳转到新的设定好的界面
75 startActivity(intent);
76 }
77 }
第二个窗体的代码:
1 package com.yy.twoactivity;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.net.Uri;
6 import android.os.Bundle;
7
8 public class SecondActivity extends Activity {
9 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity2);
13
14 //获取打开当前界面的意图
15 Intent intent=getIntent();
16 Uri uri=intent.getData();
17 //获取到使用intent.setData(Uri.parse("yy:adbc"));携带的数据
18 String data=uri.getSchemeSpecificPart();
19 System.out.println(data);
20 }
21 }
另外需要在AndoridManifest.xml文件中配置:
1 <application
2 android:allowBackup&#61;"true"
3 android:icon&#61;"&#64;drawable/ic_launcher"
4 android:label&#61;"&#64;string/app_name"
5 android:theme&#61;"&#64;style/AppTheme" >
6 <activity
7 android:name&#61;".MainActivity"
8 android:label&#61;"&#64;string/app_name" >
9
10
11
12
13
14
15 <activity
16 android:name&#61;".SecondActivity"
17 android:label&#61;"&#64;string/app_second_name" >
18
19
20
21
22
23
24