我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android中Intent习惯用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android中Intent习惯用法

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见《详解Android中Intent的使用方法》。如果对Intent Filter不是特别了解,可以参见《详解Android中Intent对象与Intent Filter过滤匹配过程》。

本文着重讲一下Android中一些常见的Intent的习惯用法,比如如何通过Intent发送短信、发送邮件、启动摄像机拍照录视频、设置闹铃、打开WIFI设置界面等等。

限于篇幅,本文分为上下两篇,这是上篇。

发送短信

发送短信的时候,我们要使用的action是Intent.ACTION_SENDTO,并且要指定其URI是smsto:协议,这样能保证是短信应用接收并处理我们的intent对象,而不是其他应用接收,从而准确实现发送短信的目的。如果我们的action不是Intent.ACTION_SENDTO,而是Intent.ACTION_SEND,且没有指定smsto:协议的URI的话,那么Android在接收到intent对象之后不会直接启动短信应用,而是弹出了App Chooser,让我们选择要启动哪个应用,比如电子邮件、QQ等等,所以为了确保直接启动短信应用,我们应该使用Intent.ACTION_SENDTO并且指定smsto:协议的URI。

示例代码如下:


//使用ACTION_SENDTO而不是ACTION_SEND
Intent intent = new Intent(Intent.ACTION_SENDTO);
//指定URI使用smsto:协议,协议后面是接收短信的对象
Uri uri = Uri.parse("smsto:10086");
intent.setData(uri);
//设置消息体
intent.putExtra("sms_body", "手头有点紧,借点钱吧~~");
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null){
 startActivity(intent);
}

在构造发送短信的URI时,前面是smsto:协议,后面跟的是接收短信的对方的手机号。如果在构建URI时,只写了smsto:,而没有写后面的手机的号的话,那么该intent也可以成功启动短信应用,不过这种情形下,在启动了短信应用之后,还需要我们自己再手动输入接收信息的手机号。我们通过key为sms_body的extra设置短信的内容。

需要注意的是,在执行了startActivity(intent)之后,虽然短信应用启动了,但是短信没有直接发出去,需要我们再点击一下发送消息才可以。

发送邮件

发送邮件的时候,我们要使用的action也是Intent.ACTION_SENDTO,并且要指定其URI是mailto:协议,这样能保证是邮件应用接收并处理我们的intent对象,而不是其他应用接收,从而准确实现发送邮件的目的。如果我们的action不是Intent.ACTION_SENDTO,而是Intent.ACTION_SEND,且没有指定mailto:协议的URI的话,那么Android在接收到intent对象之后不会直接邮件应用,而是弹出了App Chooser,让我们选择要启动哪个应用,比如短信、QQ等等,所以为了确保直接启动邮件应用,我们应该使用Intent.ACTION_SENDTO并且指定mailto:协议的URI。

示例代码如下:


//使用ACTION_SENDTO而不是ACTION_SEND
Intent intent = new Intent(Intent.ACTION_SENDTO);
//指定URI使用mailto:协议,确保只有邮件应用能接收到此intent对象
Uri uri = Uri.parse("mailto:");
intent.setData(uri);
String[] addresses = {"zhangsan@126.com", "lisi@126.com"};
String[] cc = {"boss@126.com"};
String[] bcc = {"girlfriend@126.com"};
String subject = "加班";
String content = "国庆正常上班~~";
//设置邮件的接收方
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
//设置邮件的抄送方
intent.putExtra(Intent.EXTRA_CC, cc);
//设置邮件的密送方
intent.putExtra(Intent.EXTRA_BCC, bcc);
//设置邮件标题
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
//设置邮件内容
intent.putExtra(Intent.EXTRA_TEXT, content);
//设置邮件附件
//intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(...));
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null){
 startActivity(intent);
}

启动邮件应用后的截图如下所示:

我们分别通过key为Intent.EXTRA_EMAIL、Intent.EXTRA_CC和Intent.EXTRA_BCC的extra依次设置邮件的接收方、抄送方、密送方,其值均为String数组。我们通过key为Intent.EXTRA_SUBJECT的extra设置邮件标题,通过key为Intent.EXTRA_TEXT的extra设置邮件内容。如果想发送附件,那么可以将附件封装成Uri的形式,然后通过key为Intent.EXTRA_STREAM的extra设置邮件附件。

需要注意的是,在执行了startActivity(intent)之后,虽然邮件应用启动打开了,但是邮件没有直接发出去,需要我们再点击一下右上角的发送按钮才能将邮件发出去。

打电话

要想通过Intent打电话,我们有两个可以使用的action:Intent.ACTION_DIAL和Intent.ACTION_CALL,二者有一定的区别。

如果使用Intent.ACTION_DIAL作为intent对象的action,那么当执行startActivity(intent)之后,会启动打电话应用,并且会自动输入指定的手机号,但是不会自动拨打,需要我们手动按下拨打按钮才能真正给对方打电话。

如果使用Intent.ACTION_CALL作为intent对象的action,那么当执行startActivity(intent)之后,会启动打电话应用,并且直接拨打我们指定的手机号,无需我们再手动按下拨打按钮。但是需要注意的是,该action需要权限android.permission.CALL_PHONE,如果在应用的AndroidManifest.xml文件中没有添加该权限,那么当指定到startActivity(intent)这句代码的时候,就会抛出异常,应用崩溃退出。

以下是示例代码:


//Intent.ACTION_DIAL只拨号,不打电话
//Intent intent = new Intent(Intent.ACTION_DIAL);
//Intent.ACTION_CALL直接拨打指定电话,需要android.permission.CALL_PHONE权限
Intent intent = new Intent(Intent.ACTION_CALL);
Uri uri = Uri.parse("tel:10086");
intent.setData(uri);
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null){
 startActivity(intent);
}

在该示例代码中,我们使用了Intent.ACTION_CALL作为intent对象的action,并且在AndroidManifest.xml中添加了如下权限:

代码如下:<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
我们使用tel:协议的URI,在协议后面的是要拨打的号码,将该Uri作为intent对象的data。

拍照

要想通过Intent启动摄像机进行拍照,我们需要设置intent对象的action值为MediaStore.ACTION_IMAGE_CAPTURE的action。然后我们用key为MediaStore.EXTRA_OUTPUT的extra设置图片的输出路径,最后调用startActivityForResult()方法以启动摄像机应用,并重写我们的onActivityResult()以便在该方法中得知拍照完成。

示例代码如下:


//表示用于拍照的requestCode
 private final int REQUEST_CODE_IMAGE_CAPTURE = 1;
 //我们存储照片的输出路径,以便后续使用
 private Uri imageOutputUri = null;
 //拍照
 private void captureImage(){
 PackageManager pm = getPackageManager();
 //先判断本机是否在硬件上有摄像能力
 if(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)){
 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 ComponentName componentName = intent.resolveActivity(pm);
 //判断手机上有无摄像机应用
 if(componentName != null){
 //创建图片文件,以便于通过Uri.fromFile()生成对应的Uri
 File imageFile = createImageFile();
 if(imageFile != null){
  //根据imageFile生成对应的Uri
  imageOutputUri = Uri.fromFile(imageFile);
  //利用该Uri作为拍照完成后照片的存储路径,注意,一旦设置了存储路径,我们就不能获取缩略图了
  intent.putExtra(MediaStore.EXTRA_OUTPUT, imageOutputUri);
  //调用startActivityForResult()方法,以便在onActivityResult()方法中进行相应处理
  startActivityForResult(intent, REQUEST_CODE_IMAGE_CAPTURE);
 }else{
  Toast.makeText(this, "无法创建图像文件!", Toast.LENGTH_LONG).show();
 }
 }else{
 Toast.makeText(this, "未在本机找到Camera应用,无法拍照!", Toast.LENGTH_LONG).show();
 }
 }else{
 Toast.makeText(this, "本机没有摄像头,无法拍照!", Toast.LENGTH_LONG).show();
 }
 }
 //创建图片文件,以便于通过Uri.fromFile()生成对应的Uri
 private File createImageFile(){
 File image = null;
 //用时间戳拼接文件名称,防止文件重名
 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
 String imageFileName = "JPEG_" + timeStamp + "_";
 File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
 try{
 image = File.createTempFile(
  imageFileName, //前缀
  ".jpg", //后缀
  storageDir //文件夹
 );
 }catch (IOException e){
 image = null;
 e.printStackTrace();
 Log.e("DemoLog", e.getMessage());
 }
 return image;
 }
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
 //首先判断是否正确完成
 if(resultCode == RESULT_OK){
 switch (requestCode){
 case REQUEST_CODE_IMAGE_CAPTURE:
  //此处,我们可以通过imageOutputUri获取到我们想要的图片
  String imagePath = imageOutputUri.toString();
  Log.i("DemoLog", "照片路径是: " + imagePath);
  Toast.makeText(this, "照片路径是: " + imagePath, Toast.LENGTH_LONG).show();
  //以下代码尝试获取缩略图
  //如果设置MediaStore.EXTRA_OUTPUT作为extra的时候,那么此处的intent为null,需要判断
  if(intent != null){
  Bitmap thumbnail = intent.getParcelableExtra("data");
  //有的手机并不会给拍照的图片生成缩略图,所以此处也要判断
  if(thumbnail != null){
  Log.i("DemoLog", "得到缩略图");
  }
  }
 default:
  break;
 }
 }
 }

我们分析一下上面的代码片段:

不是所有的Android设备都能拍照的,所以首先我们调用了PackageManager的hasSystemFeature(PackageManager.FEATURE_CAMERA)方法,判断当前设备在硬件层级是否具有拍照的能力。

然后我们创建了一个action为MediaStore.ACTION_IMAGE_CAPTURE的intent对象。

然后我们通过调用intent.resolveActivity(pm)方法判断当前设备有无摄像机应用以便我们启动。如果没有摄像机应用但是我们却把intent对象传递给startActivity()或startActivityForResult()的话,就会抛出异常,应用崩溃退出。

我们自己写了一个createImageFile方法,通过该方法我们在自己的应用所对应的外设存储卡上创建了一个图片文件。需要注意的是,此步骤需要WRITE_EXTERNAL_STORAGE权限,在AndroidManifest.xml中注册如下:


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
 android:maxSdkVersion="18"></uses-permission>

我们利用上面生成的图片文件生成了对应的Uri,将其存储在Activity中类型为Uri的字段imageOutputUri中,之后我们执行了intent.putExtra(MediaStore.EXTRA_OUTPUT, imageOutputUri),利用该Uri作为拍照完成后照片的存储路径。
此处需要特别注意的是,一旦设置了存储路径,我们就不能在onActivityResult()中获取缩略图了。

最后我们需要调用方法startActivityForResult(intent, REQUEST_CODE_IMAGE_CAPTURE)以启动摄像机应用进行拍照,其中REQUEST_CODE_IMAGE_CAPTURE是我们自定义指定的用于拍照的requestCode。

我们覆写了onActivityResult方法,拍照完成后触发该方法的执行。首先我们要判断resultCode是否与RESULT_OK相等,只有相等才表明拍照成功,然后我们判断如果requestCode是否等于REQUEST_CODE_IMAGE_CAPTURE,若相等表明是拍照返回的结果。那么此时,我们就可以通过我们之前存储的imageOutputUri获取刚刚拍完的照片了,其URI字符串如:
file:///storage/sdcard0/Android/data/com.ispring.commonintents/files/Pictures/JPEG_20150919_112704_533002075.jpg
需要注意的是,如果我们在第5步之中设置MediaStore.EXTRA_OUTPUT作为照片输出路径的话,那么在onActivityResult中无法获取从摄像机应用换回的Intent,即为null,这样也就无法获取缩略图。反之,如果在第5步没有设置MediaStore.EXTRA_OUTPUT作为照片输出路径的话,intent不为空,可以尝试执行Bitmap thumbnail = intent.getParcelableExtra("data")获取缩略图,如果thumbnail不为空,表示能成功获取缩略图。但是有的手机并不会给拍照的图片生成缩略图,所以此处的thumbnail也有可能是null,所以在使用之前要先判断。

摄像

通过Intent启动摄像机进行摄像的步骤与上面刚提到的通过Intent启动摄像机进行拍照的步骤非常相似,稍有区别。要启动Camera进行摄像,我们需要给intent设置值为MediaStore.ACTION_VIDEO_CAPTURE的action,然后我们用key为MediaStore.EXTRA_OUTPUT的extra设置图片的输出路径,最后调用startActivityForResult()方法以启动摄像机应用,并重写我们的onActivityResult()以便在该方法中得知摄像完成。

以下是示例代码:


//表示用于录视频的requestCode
 private final int REQUEST_CODE_VIDEO_CAPTURE = 2;
 //我们存储视频的输出路径,以便后续使用
 private Uri videoOutputUri = null;
 //摄像
 private void captureVideo(){
 PackageManager pm = getPackageManager();
 //先判断本机是否在硬件上有摄像能力
 if(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)){
 //将intent的action设置为MediaStore.ACTION_VIDEO_CAPTURE
 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
 ComponentName componentName = intent.resolveActivity(pm);
 //判断手机上有无摄像机应用
 if(componentName != null){
 //创建视频文件,以便于通过Uri.fromFile()生成对应的Uri
 File videoFile = createVideoFile();
 if(videoFile != null){
  //根据videoFile生成对应的Uri
  videoOutputUri = Uri.fromFile(videoFile);
  //利用该Uri作为摄像完成后视频的存储路径
  intent.putExtra(MediaStore.EXTRA_OUTPUT, videoOutputUri);
  //调用startActivityForResult()方法,以便在onActivityResult()方法中进行相应处理
  startActivityForResult(intent, REQUEST_CODE_VIDEO_CAPTURE);
 }else{
  Toast.makeText(this, "无法创建视频文件!", Toast.LENGTH_LONG).show();
 }
 }else{
 Toast.makeText(this, "未在本机找到Camera应用,无法摄像!", Toast.LENGTH_LONG).show();
 }
 }else{
 Toast.makeText(this, "本机没有摄像头,无法摄像!", Toast.LENGTH_LONG).show();
 }
 }
 //创建视频文件,以便于通过Uri.fromFile()生成对应的Uri
 private File createVideoFile(){
 File videoFile = null;
 //用时间戳拼接文件名称,防止文件重名
 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
 String imageFileName = "MP4" + timeStamp + "_";
 File storageDir = getExternalFilesDir(Environment.DIRECTORY_MOVIES);
 try{
 videoFile = File.createTempFile(
  imageFileName, //前缀
  ".mp4", //后缀
  storageDir //文件夹
 );
 }catch (IOException e){
 videoFile = null;
 e.printStackTrace();
 Log.e("DemoLog", e.getMessage());
 }
 return videoFile;
 }
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
 //首先判断是否正确完成
 if(resultCode == RESULT_OK){
 switch (requestCode){
 case REQUEST_CODE_VIDEO_CAPTURE:
  //如果设置MediaStore.EXTRA_OUTPUT作为extra的时候,
  //在有的手机上,此处的intent为不为null,但是在有的手机上却为null,
  //所以不建议从intent.getData()中获取视频路径
  //我们应该自己记录videoOutputUri来得知视频路径,下面注释的代码不建议使用
  
  String videoPath = videoOutputUri.toString();
  //1.如果没有设置MediaStore.EXTRA_OUTPUT作为视频文件存储路径,那么路径格式如下所示:
  // 路径格式如content://media/external/video/media/130025
  //2.如果设置了MediaStore.EXTRA_OUTPUT作为视频文件存储路径,那么路径格式如下所示:
  // 路径格式如file:///storage/sdcard0/Android/data/com.ispring.commonintents/files/Movies/MP420150919_184132_533002075.mp4
  Log.i("DemoLog", "视频路径是: " + videoPath);
  Toast.makeText(this, "视频路径是: " + videoPath, Toast.LENGTH_LONG).show();
  break;
 default:
  break;
 }
 }
 }

可以看到上面启动Camera摄像的代码与拍照的代码几乎完全一样,具体解释参见对拍照代码的描述。在该示例代码中,我们通过MediaStore.EXTRA_OUTPUT设置了视频的存放路径,拍照的时候我们也通过它设置了照片的输出路径,但是二者稍有区别:

1. 对于拍照,设置了MediaStore.EXTRA_OUTPUT之后,onActivityResult中的Intent参数是null,不能从Intent中得知照片的存储路径。 2. 对于摄像,设置了MediaStore.EXTRA_OUTPUT之后,onActivityResult中的Intent参数在有的手机上是null,但是在有的手机上不是null,我的手机小米1s得到的intent对象就不是null,所以此处很奇怪。如果intent不是null,可以通过intent.getData()获取到视频文件的存储路径,但是由于intent是否为null不确定,所以尽量不要通过intent.getData()方法获取其路径,而应该自己在Activity中存储一个字段保存我们之前设置的文件路径,这样就没问题了。

以上就是关于Android中常见Intent习惯用法,希望对大家的学习有所帮助。

附源码: 《Android中Intent习惯用法》

您可能感兴趣的文章:Android开发笔记之Intent初级学习教程Android开发中Intent传递对象的方法分析Android中Intent传递对象的两种方法Serializable,ParcelableAndroid中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法Android编程使用Intent传递对象的方法分析Android使用Intent启动其他非系统应用程序的方法详解Android中Intent对象与Intent Filter过滤匹配过程详解Android中Intent的使用方法详解Android中IntentService的使用方法深入学习Android中的IntentAndroid 广播大全 Intent Action 事件详解Android编程开发之打开文件的Intent及使用方法Android之Intent附加数据的两种实现方法从源码剖析Android中的Intent组件


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android中Intent习惯用法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android中Intent习惯用法

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见《详解Android中Intent的使用方法》。如果对Intent Filter不是特别了解,可以参见《详解Android中Intent对象与Inte
2022-06-06

深入学习Android中的Intent

Intent提供了一种通用的消息系统,它允许在你的应用程序见传递Intent来执行动作和产生事件,使用Intent可以激活Android应用的三种类型的核心组件:活动Activity、服务Service、广播接受者Broadcast。 In
2022-06-06

Android开发中Intent用法总结

本文实例讲述了Android开发中Intent用法。分享给大家供大家参考,具体如下: Android手机软件开发中,Intent作为手机软件开发时很重要的对象需要引起我们的重视,实际上,intent也是体现Android开发具有其独特性的一
2022-06-06

详解Android中Intent的使用方法

一、Intent的用途 Intent主要有以下几种重要用途: 1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该I
2022-06-06

android中intent怎么使用

在Android中,Intent是用于在不同组件(Activity、Service、BroadcastReceiver)之间传递数据和启动组件的一种机制。Intent可以用于启动Activity,启动Service,发送广播以及在组件之间传
2023-08-24

Android学习笔记--Activity中使用Intent传值示例代码

Intent,又称为意图,是一种运行时绑定机制,它能在程序运行的过程中链接两个不同的组件(Activity、Service、BroadcastReceiver)。通过Intent,程序可以向Android表达某种请求或意愿,Android会
2022-06-06

Python 的 list.pop() 方法的 Go 习惯用法是什么?

Golang不知道大家是否熟悉?今天我将给大家介绍《Python 的 list.pop() 方法的 Go 习惯用法是什么?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢
Python 的 list.pop() 方法的 Go 习惯用法是什么?
2024-04-05

React错误的习惯用法分析详解

这篇文章主要为大家介绍了React错误用法习惯分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-09

Android Intent调用 Uri的方法总结

Android Intent调用 Uri的方法总结//调用浏览器Uri uri = Uri.parse(""); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(i
2023-05-30

Intent如何在Android 项目中使用

今天就跟大家聊聊有关Intent如何在Android 项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一 Android系统用于Activity的标准Intent1 根据联系
2023-05-31

Android提高之Activity+Intent用法示例

一般来说。熟悉Android程序设计的人都知道Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来启动。本文所要介绍的是Activity的生命周期以及针对Activit
2022-06-06

Android学习之Intent中显示意图和隐式意图的用法实例分析

本文实例讲述了Android学习之Intent中显示意图和隐式意图的用法。分享给大家供大家参考,具体如下: Intent(意图)主要是解决Android应用的各项组件之间的通讯。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数
2022-06-06

Android Intent的几种用法详细解析

Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自
2022-06-06

详解Android应用开发中Intent的作用及使用方法

Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,
2022-06-06

Android Intent启动别的应用实现方法

我们知道Intent的应用,可以启动别一个Activity,那么是否可以启动别外的一个应用程序呢,答案是可以的。 1、首先我们新建一个Android应用,名为AnotherPro,此应用什么内容都没有,用于被另外一个程序打开。2、新建一个工
2022-06-06

Android中Intent和IntentFilter的作用是什么

在Android中,Intent是一种消息对象,用于在不同的组件(如Activity、Service、BroadcastReceiver)之间传递信息。Intent可以用于启动组件、传递数据以及执行其他各种操作。具体来说,Intent的作用
2023-09-15

在Android中通过Intent使用Bundle传递对象的使用方法

Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcel
2022-06-06

android中intent传递list或者对象的方法

本文实例讲述了android中intent传递list或者对象的方法。分享给大家供大家参考。具体实现方法如下: 方法一: 如果单纯的传递List 或者List的话 就可以直接使用 代码如下:代码如下:int
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录