让活动切换有两种方式

  显示意图和隐式意图

显示意图:只能在本应用中穿梭;

隐式意图:可以调用其他应用程序的活动,包括系统应用,但是需要配置清单文件

  1. 显式Intent

1) 创建一个新的活动

2) 确定进入新活动的条件

 Intent intent = new Intent(FirstActivity.this, SecondActivity.class);//第一个参数为上下文,第二个参数是新活动的类
startActivity(intent); //启用活动

也可以使用方法

getClass(上下文,class);

  1. 隐式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. 向下一个活动传递数据

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的使用(活动中穿梭)的更多相关文章

  1. (三)使用Intent在活动中穿梭:显式和隐式Intent

    一.显式Intent @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan ...

  2. ”在活动中穿梭”已经重做为“Intent的使用”

    更新地址:http://www.cnblogs.com/tangwanzun/p/5702276.html

  3. 使用Intent在活动之间穿梭

    使用Intent在活动之间穿梭 1.在com.example.activitytest中创建第二个活动SecondActivity: /** * 第二个活动 */ public class Secon ...

  4. 在活动中使用Menu

    1.在res下创建menu普通文件夹,在menu下创建名为main的Menu资源文件 2.在menu组件下创建item组件:资源id,title标题名称 3.覆盖活动中的onCreateOptions ...

  5. Android——在活动中使用Menu

    ADT在HelloWorldActivity中自动创建了一个onCreateOptionsMenu()方法.这个方法是用于在活动中创建菜单的,现在我们来仔细分析一下了.手机毕竟和电脑不同,它的屏幕空间 ...

  6. Dynamics 365 CE的插件/自定义工作流活动中调用Web API示例代码

    微软动态CRM专家罗勇 ,回复325或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 现在Web API越来越流行,有时候为了程序更加健壮,需要在插件 ...

  7. 活动中使用提示框(Toast)

    任务名称:活动中使用Toast 任务现象:点击button时,会弹出提示框:You Click Button 步骤 1.创建一个项目,新建活动和加载布局.参考: http://8c925c9a.wiz ...

  8. ROS Learning-022 learning_tf-06(编程) 现在与过去中穿梭 (Python版) --- waitForTransformFull() 函数

    ROS Indigo learning_tf-06 现在与过去中穿梭 (Python版) - waitForTransformFull() 函数 我使用的虚拟机软件:VMware Workstatio ...

  9. Android Studio 之 在活动中使用 Toast

    •简介 Toast 是 Android 系统提供的一种非常好的提醒方式: 在程序中可以使用它将一些短小的信息通知给用户: 这些信息会在一段时间内自动消失,并且不会占用任何屏幕空间 •Toast.mak ...

随机推荐

  1. 《JAVASCRIPT高级程序设计》第二章

    把javascript应用在网页中,需要涉及web的核心语言-html:如何让javascript既能与html共存,又不影响页面的显示效果,经过长时间的讨论.试错,最终的决定是为web增加统一的脚本 ...

  2. [CSS3] 学习笔记-CSS3常用操作

    1.对齐操作 使用margin属性进行水平对齐:使用position进行左右对齐:使用float属性进行左右对齐. <!doctype html> <html> <hea ...

  3. 每日一练之自适应中值滤波器(基于OpenCV实现)

    本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比.最后,对中值滤波器的优缺点了进行了总结. 空间滤 ...

  4. 【canvas系列】用canvas实现一个colorpicker

    每个浏览器都有自己的特点,比如今天要做的colorpicker就是,一千个浏览器,一千个哈姆雷特,一千个colorpicker.今天canvas系列就用canvas做一个colorpicker. ** ...

  5. 读书笔记 effective c++ Item 6 如果你不想使用编译器自动生成的函数,你需要明确拒绝

    问题描述-阻止对象的拷贝 现实生活中的房产中介卖房子,一个服务于这个中介的软件系统很自然的会有一个表示要被销售的房屋的类: class HomeForSale { ... }; 每个房产中介会立刻指出 ...

  6. Eval与Bind的区别

    bind和eval都是ASP.NET中的函数,而且都有对将数据获取到Html中的功能.那么,它们在使用的时候有什么区别呢?在我们编程的时候,在某种情况下,用哪个函数更加合适呢? 区别 用法: 1. b ...

  7. Vue2.0源码阅读笔记--生命周期

    一.Vue2.0的生命周期 Vue2.0的整个生命周期有八个:分别是 1.beforeCreate,2.created,3.beforeMount,4.mounted,5.beforeUpdate,6 ...

  8. windows下部署免费ssl证书(letsencrypt)

    随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情.要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL ...

  9. AOP的简单练习

    ---恢复内容开始--- 1.AOP的主要作用及概念简介 AOP最大的用处在于事务处理上,业务层在项目中主要负责以下的操作: ·调用数据层进行处理: ·进行事务的处理: ·关闭数据库的连接操作: 但在 ...

  10. BZOJ 1096: [ZJOI2007]仓库建设(动态规划+斜率优化)

    第一次写斜率优化,发现其实也没啥难的,没打过就随便找了一份代码借(chao)鉴(xi)下,不要介意= = 题解实在是懒得写了,贴代码吧= = CODE: #include<cstdio># ...