Android--第一行代码 Intent用法
来源:互联网 发布:网络销售是做什么的 编辑:程序博客网 时间:2024/05/17 13:08
Intent可以启动活动,服务,传递数据,发送广播等等
Intent 用法:
首先建一个新的Activity类 ,在AndroidManifest.xml 中注册该类,然后在第一个类中使用Intent启动新建活动
显示Intent :
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivity(intent);
Intent中有两个参数。第一个为Context,需要提供一个启动活动的Context。第二个参数是,启动的目标活动,然后使用Activity类中提供的startActivity方法
隐式 Intent:
在配置文件,<activity>标签下配置<intent-filter>来指定启动活动的action 和 category
AndroidManifest.xml中代码
<activity android:name=".SecondActivity" android:launchMode="singleInstance" > <intent-filter> <action android:name="com.example.activitytest.ACTION_START"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="com.example.activitytest.MY_CATEGORY"></category> </intent-filter></activity>表明当前活动可以响应这个action,<category>标签中包含一些附加信息,可以更加精确的指明当前活动能响应的Intent中还有category,只有当action标签和category标签中内容同时和Intent中指定的action和category一致时,才能响应Intent
在Activity中加入
Intent intent = new Intent("com.example.activitytest.ACTION_START"); intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
不用加入intent.addCategory("android.intent.category.DEFAULT");
因为android.intent.category.DEFAULT是一种默认的category,在调用startActivity是系统自动会加入该category
隐式 Intent还可以加入Android系统内置的动作
如 Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
可以打开百度网页
Intent传递数据:
使用Intent提供的putExtra()方法。可以在Intent中暂存一些数据(在当前Activity)
String data = "Hello";
Intent intent = new Intent...
intent.putExtra("extar_data", data);
putExtra()方法传递的是一个键值对。第一个是键,第二个是值。
接收Intent (要启动接收数据的Activity)
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");//通过键来获得intent中的数据
返回给一个活动数据是Intent:
需要使用startActivityForResult()来启动下一个活动,当下一个活动撤销时才会调用onActivityResult();方法,才能获得返回数据
在启动下一个活动时调用startActivityForResult()方法,两个参数
第一个参数 Intent
第二个参数 请求码:用来判断返回数据的来源
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intentn,1);
在下一个活动中调用setResult();两个参数
第一个参数 向上一个获得返回处理结果,一般用RESULT_OK 或者 RESULT_CANCELED;也可以自己定义,如1,2,3,等
第二个参数 讲带有数据的Intent传回去;
Intent intent = new Intent();//新建一个空的Intent
intent.putExtra(....);//加入内容
setResult(RESULT_OK,intent);//
finish();//撤销Activity
在第一个Activity中接收返回的数据
重写onActivityResult()方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 1: if(requestCode == RESULT_OK) { String returnedData = data.getStringExtra("data_return"); Log.d("FirstActivity", returnedData); } break; default: }}第一个参数,requestCode // 请求码
第二个参数,resultCode //setResult中返回的处理结果,RESULT_OK。。。。
第三个参数,Intent 数据
先通过switch语句选择是否来自于第二个Activity,再通过resultCode判断处理结果是否成功,最后将数据提取出来
- Android--第一行代码 Intent用法
- Intent的用法——第一行代码阅读笔记
- 第一行代码:更多隐式Intent的用法
- 第一行代码:显示Intent
- 第一行代码:隐式Intent
- Android Studio Intent使用(显式、隐式) 第一行代码
- 入门Android开发--第一行代码--笔记系列(Intent)
- Android第一行代码
- 《第一行代码》学习笔记intent
- 第一行代码系列第二章——更多隐式Intent用法(打开网页)
- 第一行代码阅读笔记----显示隐式Intent的基本用法
- ListView的用法 - 第一行代码—android学习笔记
- RecyclerView的基本用法(第一行代码android学习笔记)
- Android Studio Intent向上下活动传递数据 第一行代码
- android 使用Intent传递对象 Serializable 或者 Parcelabel 《第一行代码》
- 【第一行代码-Android】学习(一)及在studio的迁移(4)intent学习
- 《第一行代码Android》读书笔记
- 《第一行代码Android》摘要
- Windows CTS环境的安装
- 韩信点兵(水题)
- getopt
- 递归
- Picasso 源码流程分析
- Android--第一行代码 Intent用法
- 未来科技 HoloLens演示3D地理信息系统
- codis搭建部署实验
- android UI——绘制加减号按钮
- mac 上代码托管到svn和github
- 排列组合(两种方法)
- uva10304(二维完全背包DP)
- 2016百度之星
- 跟着郝斌学数据结构(06)——队列(链式队列)