Andorid开发中Intent的用法

从字面上来说,Intent是意图的意思。你想做什么,可以告诉Intent,它可以帮你干活。

Intent是安卓提供的一种运行机制,它可以进行不同页面切换,数据传递,调用外部组件等操作。可以理解为一个不同组件之间的媒介的角色。

Intent的属性有Action(动作),Data,Category(分类),Type(类型),Compent,Extra(扩展)等。其中Action最常用。

常量 含义
Intent.ACTION_MAIN activity为一个程序的开始
Intent.ACTION_GET_CONTENT 用户可以选择图片、文件等多媒体数据
Intent.ACTION_SEND 发送邮件
Intent.SMS_RECEIVED 接收邮件
Intent.ACTION_AMSWER 处理呼入的电话
Intent.ACTION_CALL_BUTTON 按拨号键
Intent.ACTION_CALL 呼叫指定的电话号码(直接拨打)

Activity之间的传值可以通过intent来完成。

通过以下代码来创建一个Intent。

Intent intent = new Intent(当前的activity.this,另一个activity.class);//此intent的目的是从当前的activity跳转到另一个activity。

当然,也有另外一种方法,是等价的。

Intent intent = new Intent();
intent.setClass(当前的activity.this,另一个activity.class);

通过以下代码来向intent中放入数据。

这里需要引入一个类Bundle,中文意思是糖葫芦,把想传递的数据以key-value的形式穿成糖葫芦,扔给另一个Activity。

Bundle bundle = new Bundle();
bundle.putString("key","value");
//存放数据,同时bundle还有其他方法,例如remove(String key)移除指定的key
//getString(String key) 获取指定key的值 等方法。
intent.putExtras(bundle);//数据对象坐上intent的车,intent帮忙给运过去

然后通过以下代码来启动另一个activity,同时也传值过去

startActivity(intent);//切换到另一个Activity

另一个Activity 通过这种方式取到传过来的值。

Bundle bundle = this.getIntent().getExtras();
String str = bundle.getString("key");

此外,还有intent另外的一些使用方式,例如拨打电话等。

Uri call= Uri.parse("tel:88888888");  
Intent intent = new Intent(Intent.ACTION_DIAL, call);  

以上

猜你喜欢

转载自blog.csdn.net/h517604180/article/details/79807370
今日推荐