标签:
2015/04/20 Intent的深入学习
|
|||||||||||||||||||||||||||||||||||||||||||
例3:
第一步:新建一个Android工程命名为ObjectTranDemo(类比较多哦!)目录结构如下图: 第二步:修改main.xml布局文件(这里我增加了两个按钮)代码如下
第三步:新建两个类一个是Person.java实现Serializable接口,另一个Book.java实现Parcelable接口,代码分别如下: Person.java:
Book.java:
第四步:修改ObjectTranDemo.java,并且新建两个Activity,一个是ObjectTranDemo1.java,别一个是ObjectTranDemo2.java.分别用来显示Person对像数据,和Book对象数据:,代码分别如下: ObjectTranDemo.java:
ObjectTranDemo1.java:
ObjectTranDemo2.java:
第五步:比较重要的一步啦,修改AndroidManifest.xml文件(将两个新增的Activity,ObjectTranDemo1,ObjectTranDemo2)申明一下代码如下(第14,15行):
第六步:运行上述工程查看效果图啦: 效果1:首界面: 效果2:点击Serializable按钮 效果3:点击Parcelable按钮: |
|||||||||||||||||||||||||||||||||||||||||||
Intent显式跳转和隐式跳转(转)(2014-08-09 18:05:19)转载▼
来源:http://blog.csdn.net/wulianghuan/article/details/8508848
显式 Intent 调用 1 //创建一个显式的 Intent 对象(方法一:在构造函数中指定) 2 Intent intent = new Intent(Intent_Demo1.this, Intent_Demo1_Result1.class); 3 4 Bundle bundle = new Bundle(); 5 bundle.putString("id", strID); 6 intent.putExtras(bundle); 7 8 intent.putExtra("name", "bbb"); 9 intent.putExtra("userInfo", new UserInfo(1, "name")); 10 startActivity(intent); 11 12 //创建一个显式的 Intent 对象(方法二:用 setClass 方法) 13 Intent intent = new Intent(); 14 Bundle bundle = new Bundle(); 15 bundle.putString("id", strID); 16 intent.setClass(Intent_Demo1.this, Intent_Demo1_Result1.class); 17 intent.putExtras(bundle); 18 startActivity(intent); 19 20 //创建一个显式的 Intent 对象(方法三:用 setClass 方法) 21 Intent intent = new Intent(); 22 Bundle bundle = new Bundle(); 23 bundle.putString("id", strID); 24 intent.setClassName(Intent_Demo1.this, "com.great.activity_intent.Intent_Demo1_Result1"); 25 intent.putExtras(bundle); 26 startActivity(intent); 27 28 //创建一个显式的 Intent 对象(方法四:用 setComponent 方法) 29 Intent intent = new Intent(); 30 Bundle bundle = new Bundle(); 31 bundle.putString("id", strID); 32 //setComponent方法的参数:ComponentName 33 intent.setComponent(new ComponentName(Intent_Demo1.this, Intent_Demo1_Result1.class)); 34 intent.putExtras(bundle); 35 startActivity(intent);
Intent隐式跳转 Action
1 //创建一个隐式的 Intent 对象:Action 动作 2 7 Intent intent = new Intent(); 8 //设置 Intent 的动作 9 intent.setAction("com.great.activity_intent.Intent_Demo1_Result3"); 10 Bundle bundle = new Bundle(); 11 bundle.putString("id", strID); 12 intent.putExtras(bundle); 13 startActivity(intent); AndroidManifest.xml
1 < activity android:name="Intent_Demo1_Result3" 2 android:label="Intent_Demo1_Result3"> 3 < intent-filter> 4 < action android:name="com.great.activity_intent.Intent_Demo1_Result3" /> 5 < category android:name="android.intent.category.DEFAULT" /> 6 < /intent-filter> 7 < /activity>
Category 类别
1 //创建一个隐式的 Intent 对象:Category 类别 2 Intent intent = new Intent(); 3 intent.setAction("com.great.activity_intent.Intent_Demo1_Result33"); 4 8 intent.addCategory(Intent.CATEGORY_INFO); 9 intent.addCategory(Intent.CATEGORY_DEFAULT); 10 Bundle bundle = new Bundle(); 11 bundle.putString("id", strID); 12 intent.putExtras(bundle); 13 startActivity(intent); AndroidManifest.xml
< activity android:name="Intent_Demo1_Result2" android:label="Intent_Demo1_Result2"> < intent-filter>
< category android:name="android.intent.category.INFO" /> < category android:name="android.intent.category.BROWSABLE" /> < category android:name="android.intent.category.DEFAULT" />
< /intent-filter> < /activity> Date 数据 跳转
1 //创建一个隐式的 Intent 对象,方法四:Date 数据 2 Intent intent = new Intent(); 3 Uri uri = Uri.parse("http://www.great.org:8080/folder/subfolder/etc/abc.pdf"); 4 5 //注:setData、setDataAndType、setType 这三种方法只能单独使用,不可共用 6 //要么单独以 setData 方法设置 URI 7 //intent.setData(uri); 8 //要么单独以 setDataAndType 方法设置 URI 及 mime type 9 intent.setDataAndType(uri, "text/plain"); 10 //要么单独以 setDataAndType 方法设置 Type 11 //intent.setType("text/plain"); 12 13 17 Bundle bundle = new Bundle(); 18 bundle.putString("id", strID); 19 intent.putExtras(bundle); 20 startActivity(intent); AndroidManifest.xml
1 < activity android:name="Intent_Demo1_Result2" 2 android:label="Intent_Demo1_Result2"> 3 < intent-filter> 4 < category android:name="android.intent.category.DEFAULT" /> 5 < data 6 android:scheme="http" 7 android:host="www.great.org" 8 android:port="8080" 9 android:pathPattern=".*pdf" 10 android:mimeType="text/plain"/> 11 < /intent-filter> 12 < /activity> 13
调用系统的的组件
//web浏览器 Uri uri= Uri.parse("http://www.baidu.com:8080/image/a.jpg"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//地图(要在 Android 手机上才能测试) Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//路径规划 Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat startLng&daddr=endLat endLng&hl=en"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it);
//拨打电话-调用拨号程序 Uri uri = Uri.parse("tel:15980665805"); Intent intent = new Intent(Intent.ACTION_DIAL, uri); startActivity(intent);
//拨打电话-直接拨打电话 //要使用这个必须在配置文件中加入< uses-permission android:name="android.permission.CALL_PHONE"/> Uri uri = Uri.parse("tel:15980665805"); Intent intent = new Intent(Intent.ACTION_CALL, uri); startActivity(intent);
//调用发送短信程序(方法一) Uri uri = Uri.parse("smsto:15980665805"); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", "The SMS text"); startActivity(intent);
//调用发送短信程序(方法二) Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra("sms_body", "The SMS text"); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent);
//发送彩信 Uri uri = Uri.parse("content://media/external/images/media/23"); Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra("sms_body", "some text"); intent.putExtra(Intent.EXTRA_STREAM, uri); intent.setType("image/png"); startActivity(intent);
//发送Email(方法一)(要在 Android 手机上才能测试) Uri uri = Uri.parse("mailto:zhangsan@gmail.com"); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); startActivity(intent);
//发送Email(方法二)(要在 Android 手机上才能测试) Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:zhangsan@gmail.com")); intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题"); intent.putExtra(Intent.EXTRA_TEXT, "这是内容"); startActivity(intent);
//发送Email(方法三)(要在 Android 手机上才能测试) Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题"); intent.putExtra(Intent.EXTRA_TEXT, "这是内容"); intent.setType("text/plain"); //选择一个邮件客户端 startActivity(Intent.createChooser(intent, "Choose Email Client"));
//发送Email(方法四)(要在 Android 手机上才能测试) Intent intent = new Intent(Intent.ACTION_SEND); //收件人 String[] tos = {"to1@abc.com", "to2@abc.com"}; //抄送人 String[] ccs = {"cc1@abc.com", "cc2@abc.com"}; //密送人 String[] bcc = {"bcc1@abc.com", "bcc2@abc.com"}; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_BCC, bcc); intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题"); intent.putExtra(Intent.EXTRA_TEXT, "这是内容"); intent.setType("message/rfc822"); startActivity(Intent.createChooser(intent, "Choose Email Client"));
//发送Email且发送附件(要在 Android 手机上才能测试) Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); intent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mp3/醉红颜.mp3"); intent.setType("audio/mp3"); startActivity(Intent.createChooser(intent, "Choose Email Client"));
//播放媒体文件(android 对中文名的文件支持不好) Intent intent = new Intent(Intent.ACTION_VIEW); //Uri uri = Uri.parse("file:///sdcard/zhy.mp3"); Uri uri = Uri.parse("file:///sdcard/a.mp3"); intent.setDataAndType(uri, "audio/mp3"); startActivity(intent);
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);
//音乐选择器 //它使用了Intent.ACTION_GET_CONTENT 和 MIME 类型来查找支持 audio/* 的所有 Data Picker,允许用户选择其中之一 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); //Intent.createChooser:应用选择器,这个方法创建一个 ACTION_CHOOSER Intent startActivity(Intent.createChooser(intent, "选择音乐"));
Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT); intent1.setType("audio/*");
Intent intent2 = new Intent(Intent.ACTION_CHOOSER); intent2.putExtra(Intent.EXTRA_INTENT, intent1); intent2.putExtra(Intent.EXTRA_TITLE, "aaaa"); startActivity(intent2);
// //设置壁纸 // Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); // startActivity(Intent.createChooser(intent, "设置壁纸"));
//卸载APK //fromParts方法 //参数1:URI 的 scheme //参数2:包路径 //参数3: Uri uri = Uri.fromParts("package", "com.great.activity_intent", null); Intent intent = new Intent(Intent.ACTION_DELETE, uri); startActivity(intent);
//安装APK(???) Uri uri = Uri.fromParts("package", "com.great.activity_intent", null); Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri); startActivity(intent);
//调用搜索 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY, "android"); startActivity(intent);
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
|
标签:
原文地址:http://www.cnblogs.com/wzf1201/p/4462677.html