一、
Intent类中有一个putExtra方法,该方法可以保存各种类型的值(String、boolean、int、Serializable等)
1、当startActivity方法启动Activity时,这些值也会一同随Intent对象传递到新启动的Activity。
2、在启动的Activity中可以通过getIntent().getExtra()获得一个Bundle对象,并通过该对象的相应的方法获得通过putExtra方法保存的值。
3、如果要使用putExtra方法保存复杂类型的值(比如类的对象实例),那么这些复杂类型的值必须是可序列化的,也就是复杂类型的值对应的类必须实现java.io.Serializable接口。
(使用putExtra方法传递一个实现java.io.Serializable接口的类的对象实例时,这个类中的所有成员也必须是可序列化的,否则系统会抛出异常。)
二、调用其他应用程序中的Activity(拨打电话、浏览网页、发E-mail等)
1、直接拨号(将Text中的号码直接拨打,显示正在拨打的界面)
Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+etPhone.getText().toString()));
startActivity(callIntent);
2、调用通话记录的界面
Intent callButtonIntent=new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(callButtonIntent);
3、将电话号码传入拨号程序,但是并不拨打电话
Intent dialIntent=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+etPhone.getText().toString()));
startActivity(dialIntent);
4、浏览网页
Intent webIntent=new Intent(Intent.ACTION_VIEW,Uri.parse("http:nokiaguy.blogjava.net"));
startActivity(webIntent);
5、向E-mail客户端传递E-mail地址
Intent intent=new Intent(Intent.ACTION_SENDTO,Uri.parse("mailto:xxx@abc.com"));
startActivity(intent);
6、发送E-mail
Intent sendEmailIntent=new Intent(Intent.ACTION_SEND);
//发送的信息通过putExtra()方法指定
//发送的目标Email
sendEmailIntent.putExtra(Intent.EXTRA_EMAIL,new String[]{"techcast@126.com"});
//指定两个抄送的E-mail地址
sendEmailIntent.putExtra(Intent.EXTRA_CC,new String[]{"邮件的地址","邮件的地址"});
//指定E-mail标题
sendEmailIntent.putExtra(Intent.EXTRA_SUBJECT,"邮件的标题");
//指定邮件的内容
sendEmailIntent.putExtra(Intent.EXTRA_TEXT,"邮件的内容");
//指定邮件的内容是纯文本
sendEmailIntent.setType("text/plain");
//建立一个自定义选择器,并由用户选择使用的客户端发送消息
startActivity(Intent.createChooser(sendEmailIntent,"选择发送消息的客户端"));
7、选择相同类型的应用
Intent audioIntent=new Intent(Intent.ACTION_GET_CONTENT);
audioIntent.setType("audio/*");
startActivity(Intent.createChooser(audioIntent,"选择音频程序"));