Android05之Intent专题
来源:互联网 发布:js不允许输入特殊字符 编辑:程序博客网 时间:2024/04/29 10:15
Intent,翻译过来为“意图”,我的理解为:就是告诉当前Activity下一步要做什么,表现出的一种意向。
so,Intent的大致功能有:
①启动活动、启动服务,启动广播等,今天只针对Activity,其它日后研究
②实现Activity之间的跳转,也就是在当前Activity下,启动另一个Activity
③Activity之间的数据交互
使用Intent实现以上功能:但Intent分为显示Intent和隐Intent
隐式跟显式的区别:举个例子
小李:170cm
小张:160cm
小王:165cm
小赵:175cm
显式Intent:直接告诉要找的人是小李
隐式Intent:比较模糊,告诉条件,要找的人有170cm,找出符合条件的为小李,170cm只是一个属性,条件,隐式有三个:active(动作)、category(不清楚,我就当作一个属性)、data(数据,可以理解为传递数据的一个工具)
①显式Intent:
//显式创建Intent,参数一:当前Activity,参数二:要启动的Activity
Intent intent = new Intent("Context context","...class");
//启动Activity
startActivity(intent);
②隐式Intent
一、Activity之间的跳转
通过三个属性来查找符合条件的对象,active、category、data
前提环境:有一个MainActivity,自己创建了一个SecondActivity,
①在AndroidManifest.xml中注册了SecondActivity,
②<intent-filter></intent-filter>中配置属性
<active Android:name = "ACTIVE_START"/> //自己取名字
<category Android:name = "android.intent.category.DEFAULT"/> //android.intent.caetgoty.(...) 很多选项,一般DEFAULT,具体不清楚,
<data />//可有可无,用来限制data的数据类型
//创建Intent
Intent intent = new Intent();
//设置动作
intent.setActive("ACTIVE_START");
//启动时自动加载了catagory,所以可以不用写
startActivity(intent);
二、Activity间单向传递数据
如以下图所示,putExtra方法将数据用键值对的形式存储在intent中,
取出数据:
Intent intent = getIntent();
intent.getgetStringExtra("Data");
这样就得到了数据
三、Activity双向传递数据
前提环境不变
其他都一样,启动intent的方法不同,
①
//创建Intent
Intent intent = new Intent();
//设置动作
intent.setActive("ACTIVE_START");
//
startActivityForResult(intent,1);
②
SecondActivity返回数据
Intent intent1 = new Intent();
intent1.putExtra("Data1", "Hello Main!!");
setResult(RESULT_OK, intent1);
③返回的数据在MainActivity中的一个onActivityResult方法中,重写此方法
//requestCode:请求参数,就是前面启动带intent活动是的“1”
//resultCode:结果参数,就是看返回成功与否,RESULT_OK为成功,
//data:数据,传递的数据存在在其中。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 1:
if(resultCode == RESULT_OK){
Log.d("Main", data.getStringExtra("Data1"));
}
break;
default:
}
}
这里只是介绍了自己定义的活动,intent(意图)中还可以指向系统自带的一些Activity,比如,拨号器,短信等,下面就介绍一下如何使用系统自带的拨号器
//创建Intent
Intent intent = new Intent();
//设置拨号器的动作
intent.setActive(Intent.ACTION_CALL);
//直接告诉拨号器要拨打的号码,number为要拨打的号码,一般会提前写好
intent.setData(Uri.parse("tel:"+number));
//启动
startActivity(intent);
提醒:启动系统中的一些Activity,需要设置权限,否则启动不成功
在AndroidManifest.xml中配置权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
这样就成功了~
总结:Intent应该挺强大的,可以做一个自己的拨号器,可以做一个自己的短信发送器,或者做一个恶意的后台偷偷发短信的小Demo,以后学到了继续补充Intent。
so,Intent的大致功能有:
①启动活动、启动服务,启动广播等,今天只针对Activity,其它日后研究
②实现Activity之间的跳转,也就是在当前Activity下,启动另一个Activity
③Activity之间的数据交互
使用Intent实现以上功能:但Intent分为显示Intent和隐Intent
隐式跟显式的区别:举个例子
小李:170cm
小张:160cm
小王:165cm
小赵:175cm
显式Intent:直接告诉要找的人是小李
隐式Intent:比较模糊,告诉条件,要找的人有170cm,找出符合条件的为小李,170cm只是一个属性,条件,隐式有三个:active(动作)、category(不清楚,我就当作一个属性)、data(数据,可以理解为传递数据的一个工具)
①显式Intent:
//显式创建Intent,参数一:当前Activity,参数二:要启动的Activity
Intent intent = new Intent("Context context","...class");
//启动Activity
startActivity(intent);
②隐式Intent
一、Activity之间的跳转
通过三个属性来查找符合条件的对象,active、category、data
前提环境:有一个MainActivity,自己创建了一个SecondActivity,
①在AndroidManifest.xml中注册了SecondActivity,
②<intent-filter></intent-filter>中配置属性
<active Android:name = "ACTIVE_START"/> //自己取名字
<category Android:name = "android.intent.category.DEFAULT"/> //android.intent.caetgoty.(...) 很多选项,一般DEFAULT,具体不清楚,
<data />//可有可无,用来限制data的数据类型
//创建Intent
Intent intent = new Intent();
//设置动作
intent.setActive("ACTIVE_START");
//启动时自动加载了catagory,所以可以不用写
startActivity(intent);
二、Activity间单向传递数据
如以下图所示,putExtra方法将数据用键值对的形式存储在intent中,
取出数据:
Intent intent = getIntent();
intent.getgetStringExtra("Data");
这样就得到了数据
三、Activity双向传递数据
前提环境不变
其他都一样,启动intent的方法不同,
①
//创建Intent
Intent intent = new Intent();
//设置动作
intent.setActive("ACTIVE_START");
//
startActivityForResult(intent,1);
②
SecondActivity返回数据
Intent intent1 = new Intent();
intent1.putExtra("Data1", "Hello Main!!");
setResult(RESULT_OK, intent1);
③返回的数据在MainActivity中的一个onActivityResult方法中,重写此方法
//requestCode:请求参数,就是前面启动带intent活动是的“1”
//resultCode:结果参数,就是看返回成功与否,RESULT_OK为成功,
//data:数据,传递的数据存在在其中。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 1:
if(resultCode == RESULT_OK){
Log.d("Main", data.getStringExtra("Data1"));
}
break;
default:
}
}
这里只是介绍了自己定义的活动,intent(意图)中还可以指向系统自带的一些Activity,比如,拨号器,短信等,下面就介绍一下如何使用系统自带的拨号器
//创建Intent
Intent intent = new Intent();
//设置拨号器的动作
intent.setActive(Intent.ACTION_CALL);
//直接告诉拨号器要拨打的号码,number为要拨打的号码,一般会提前写好
intent.setData(Uri.parse("tel:"+number));
//启动
startActivity(intent);
提醒:启动系统中的一些Activity,需要设置权限,否则启动不成功
在AndroidManifest.xml中配置权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
这样就成功了~
总结:Intent应该挺强大的,可以做一个自己的拨号器,可以做一个自己的短信发送器,或者做一个恶意的后台偷偷发短信的小Demo,以后学到了继续补充Intent。
0 0
- Android05之Intent专题
- Android05
- Android05
- Android05--Android之AutoCompleteTextView+MultiAutoCompleteTextView
- Android05--Android之滚动条
- Android05--Android之ScrollView的属性总结
- Android05--Android之Drawable的着色兼容问题
- 安卓进阶专题篇-Intent
- Intent 之系统Intent<一>
- 【面试】之专题总纲
- 搜索专题之BFS
- Yii之widget专题
- Java专题之IO
- CSS专题之动画
- CSS专题之浮动
- Java专题之集合
- 专题2之栈
- Android05-常用控件2(Button-选择框)
- 宏定义里面的#和##
- 柴俊理金:齐唱加息鹰派尽显,金油涨势止跌不前
- iOS-OC-本地推送和取消本地推送服务
- 操作系统(os)总结----大学的课件(参考书:王爽的 8086汇编)
- Java逻辑运算符"&","&&","|","||"
- Android05之Intent专题
- 二分查找-有重复数和无重复数
- IAR 问题:Label 'Reset_Handler' is defined pubweak in a section implicitly declared root
- mssql-->ogg-->oracle
- html-判断row中xx属性是否存在及取值
- Backbonejs之router
- 实用知识:SQL 表连接查询
- C基础 容易错的点
- Android06之学习日常(Activity生命周期*)