###Intent的使用(活动中穿梭)
让活动切换有两种方式
显示意图和隐式意图
显示意图:只能在本应用中穿梭;
隐式意图:可以调用其他应用程序的活动,包括系统应用,但是需要配置清单文件
显式Intent
1) 创建一个新的活动
2) 确定进入新活动的条件
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);//第一个参数为上下文,第二个参数是新活动的类
startActivity(intent); //启用活动
也可以使用方法
getClass(上下文,class);
隐式Intent
配置清单文件
<activity
android:name="com.example.tangwanzun_2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<!-- 这里的name是自己起的名字,用来在隐式意图中确认传递的目标-->
<action android:name="android.intent.action.MyIntent" />
<!-- 这里表示的是改活动运行的平台,DEFAULT是手机平台,注意这里不能是LAUNCHER,否则程序运行出错 。LAUNCHER的意思是主活动的意思-->
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
###在活动之间传递数据
隐式意图和显示意图都是可以传递数据的
普通数据的的传值方式
- 向下一个活动传递数据
1) 发送方:
a) new一个intent
b) 使用方法putExtra(“键值”,传递的数据);来传递数
c) startActivity(intent); //启用活动
//隐式传值
Intent intent = new Intent();
intent.putExtra("Myage", age);
intent.putExtra("Myname", name);
intent.setClass(MainActivity.this,MainActivity_2.class); startActivity(intent);
//显式传值
Intent intent = new Intent();
intent.putExtra("Myage", age);
intent.putExtra("Myname", name);
intent.setAction("android.intent.action.MyIntent");
startActivity(intent);
2) 接收方:
a) 创建一个intent对象 = getIntent();
b) 使用方法getStringExtra(“键值”);来得到数据-----此方法返回一个String
Intent intent = getIntent();
String age = intent.getExtra("Myage");
String name = intent.getExtra("Myname");
Bundle传递值的方式
1) 发送方
a) new一个intent
b) new一个Bundle
c) Bundle使用方法putString(“键值”,数据);
d) Intent使用方法putExtra(Bundle);
e) startActivity(intent); //启用活动
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("Myname", name);
bundle.putString("Myage", age);
intent.putExtras(bundle);
intent.setClass(MainActivity.this, MainActivity_2.class);
startActivity(intent);
2) 接收方
a) 创建一个intent对象 = getIntent();
b) 创建一个Bundle对象 = intent.getExtra();
b) Bundle使用方法getString(键值”);来得到数据-----此方法返回一个String
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String age = bundle.getString("Myage");
String name = bundle.getString("Myname");
数据的回传
1) 创建的第一个活动
a) 建立Intent,并找到第二个活动
b) startActivityForResult(intent, 数据请求值);//数据请求值是一个int
c) 重写方法
//用来处理回传值的
//第一个int是接收是第一个活动创建时的请求值
//第二个int是接收是第二个活动返回数据时的请求值
//第三个参数是接收的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnData = data.getStringExtra("return_data");
Toast.makeText(FirstActivity.this, returnData, Toast.LENGTH_LONG).show();
Log.i("回传数据",returnData);
}
break;
default:
}
super.onActivityResult(requestCode, resultCode, data);
}
2) 创建的第二个活动
a) 创建一个intent对象
c) 使用方法intent的方法putExtra(“键值”,传递的数据);来传递数
b) setResut(数据处理结果,intent);//数据处理结果通常是RESULT_OK和RESULT_CANCELED
c) 销毁活动
注意:可以自定义一个按钮在销毁活动的同时传递数据,也可以重写onBackPressed()方法
该方法表示:当用户按下BACK按键时所进行的动作
###Intent的使用(活动中穿梭)的更多相关文章
- (三)使用Intent在活动中穿梭:显式和隐式Intent
一.显式Intent @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan ...
- ”在活动中穿梭”已经重做为“Intent的使用”
更新地址:http://www.cnblogs.com/tangwanzun/p/5702276.html
- 使用Intent在活动之间穿梭
使用Intent在活动之间穿梭 1.在com.example.activitytest中创建第二个活动SecondActivity: /** * 第二个活动 */ public class Secon ...
- 在活动中使用Menu
1.在res下创建menu普通文件夹,在menu下创建名为main的Menu资源文件 2.在menu组件下创建item组件:资源id,title标题名称 3.覆盖活动中的onCreateOptions ...
- Android——在活动中使用Menu
ADT在HelloWorldActivity中自动创建了一个onCreateOptionsMenu()方法.这个方法是用于在活动中创建菜单的,现在我们来仔细分析一下了.手机毕竟和电脑不同,它的屏幕空间 ...
- Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码
微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...
- 活动中使用提示框(Toast)
任务名称:活动中使用Toast 任务现象:点击button时,会弹出提示框:You Click Button 步骤 1.创建一个项目,新建活动和加载布局.参考: http://8c925c9a.wiz ...
- ROS Learning-022 learning_tf-06(编程) 现在与过去中穿梭 (Python版) --- waitForTransformFull() 函数
ROS Indigo learning_tf-06 现在与过去中穿梭 (Python版) - waitForTransformFull() 函数 我使用的虚拟机软件:VMware Workstatio ...
- Android Studio 之 在活动中使用 Toast
•简介 Toast 是 Android 系统提供的一种非常好的提醒方式: 在程序中可以使用它将一些短小的信息通知给用户: 这些信息会在一段时间内自动消失,并且不会占用任何屏幕空间 •Toast.mak ...
随机推荐
- 关于angularjs过滤器的小尝试
最近的项目中用到了angularjs,相比传统的jquery直接操作Dom, 开发web项目,angularjs在操作表格数据时的数据绑定,操作让我不禁直呼过瘾,好方便啊, 从后台接口传一个json过 ...
- 从jvm的角度来看单例模式
最近在看jvm,发现随着自己对jvm底层的了解,现在对java代码可以说是有了全新的认识.今天就从jvm的角度来看一看以前自以为很了解的单例模式. 了解单例模式的人都知道,单例模式有两种:" ...
- 消费创富会开发模式系统App
消费创富会系统定制开发,消费创富会网页开发模式,消费创富会开发软件,消费创富会系统APP开发,消费创富会平台模式开发,专业开发微信商城分销.公排.全返.分红.互助等模式定制开发,APP.网页版.微信端 ...
- MySQL的my-innodb-heavy-4G.ini配置文件的翻译
我根据MySQL配置文件的英文文档说明,在根据自己所学的知识,使用有道词典对不懂的单词进行了查询,一个一个翻译出来的.有的专业术语翻译的不好,我使用了英文进行标注,例如主机(master)和副机(sl ...
- NodeJS Stream 五:双工流
双工流就是同时实现了 Readable 和 Writable 的流,即可以作为上游生产数据,又可以作为下游消费数据,这样可以处于数据流动管道的中间部分,即 rs.pipe(rws1).pipe(rws ...
- C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出(First In First Out)的线性表,简称FIFO.允许插入的一端称为队尾,允许删除的一端 ...
- Unsupported major.minor version 52.0错误解决 Ubuntu JDK8 安装配置
Unsupported major.minor version 52.0错误一般是因为应用程序需要JDK8而ubuntu默认的是jdk7,所以需要切换到jdk8才能解决这个问题. 本文使用PPA方式安 ...
- ion-scroll zooming="true" android端无法缩放的问题
很久很久没更新博客了,从今天开始决定以后陆续写一些博文,总结下自己在开发中碰到的问题. ionic项目.ion-scroll zooming="true" 在android端无法缩 ...
- [Hadoop] - Hadoop Mapreduce Error: GC overhead limit exceeded
在运行mapreduce的时候,出现Error: GC overhead limit exceeded,查看log日志,发现异常信息为 2015-12-11 11:48:44,716 FATAL [m ...
- win7下安装maven3.1.1
1.下载maven的安装包,下载地址http://maven.apache.org/download.cgi ,在这个页面中,你可以选择要下载的最新版本的maven gz包.我下载的是maven3.1 ...