Intent意为:意图。简单的理解就是用来从一个Activity/Service跳转到另一个Activity/Service中,并可以携带数据,也可以在这个程序调用别的程序。这样我们虽然不懂如何结息条形码,却可以通过开放的android平台,在我们的程序调用专家写好的程序来实现功能。

Intent的用法:

(1)从MainActivity不携带数据跳转到NewActivity

Intent intent=new Intent(MainActivity,this,NewActivity.this);

startAcitivity(intent);

(2)从MainActivity携带数据跳转到NewActivity,

Intent intent=new Intent(MainActivity,this,NewActivity.this);

----------------------------------------------------------------------------------------

Bundle bundle=new Bundle();

bundle.putString("name", "value");

intent.putExtras(bundle);//注意有加S,bundle可以放入多组值要与intent.putExtra()进行区别

---------------------------------------------------------------------------------------------------------

intent.putExtra("name","value");

---------------------------------------------------------------------------------------------------------------

startAcitivity(intent);

接收

mintent=this.getIntent();//注意点!用this.getIntent()而不是new出来的

String a=mintent.getStringExtra("name");

---------------------------------------------------------------------------------

第一种方法当bundle的值要传给多个activity时较为简便。

(3)从MainActivity跳转到NewActivity,并携带数据,并且要从NewActivity跳转回MainActivity且携带数据。

Intent intent=new Intent(MainActivity.this,NewActivity.class);
Bundle bundle=new Bundle();
bundle.putString("name","value");
intent.putExtras(bundle);
startActivityForResult(intent,1234);

protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
  if (resultCode==4321)
  {
    String a=data.getStringExtra("name");
    Toast.makeText(this, a, Toast.LENGTH_LONG).show();;
  }
  super.onActivityResult(requestCode, resultCode, data);
}

//请求码requestCode=1234

Intent mintent=new Intent(this,MainActivity);

mintent.putExtra("name", "你好");
setResult(4321, mintent);//4321为结果码
finish();

//程序例子A调用程序例子B

intent.setClassName("com.example.lizib", "com.example.lizib.MainActivity");
Bundle bundle=new Bundle();
bundle.putString("STR_INPUT", "HI,我来自例子A...");
intent.putExtras(bundle);
startActivityForResult(intent, 1234);

protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
if (resultCode!=RESULT_OK)
{
return;
}
else
{
String aaa=data.getStringExtra("STR_BACK");
tv.setText("来自例子B:"+aaa);
}
super.onActivityResult(requestCode, resultCode, data);
}

//接收

Bundle bundle=getIntent().getExtras();
strRet=bundle.getString("STR_INPUT");

//返回

Bundle bundle=new Bundle();
bundle.putString("STR_BACK", "我是例子B");
Intent intent=new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();

初学Android:意图之intent的更多相关文章

  1. Android中的Intent详解

    前言: 每个应用程序都有若干个Activity组成,每一个Activity都是一个应用程序与用户进行交互的窗口,呈现不同的交互界面.因为每一个Acticity的任务不一样,所以经常互在各个Activi ...

  2. Android总结篇——Intent机制详解及示例总结

         最近在进行android开发过程中,在将 Intent传递给调用的组件并完成组件的调用时遇到点困难,并且之前对Intent的学习也是一知半解,最近特意为此拿出一些时间,对Intent部分进行 ...

  3. android隐式intent使用场景解析

    Android 隐式intent相信大家都有用过,大部分场景我们用显式intent已经能满足我们的业务需求,隐式intent大部分都是用来启动系统自带的Activity或Service之类的组件.昨天 ...

  4. Android学习笔记-Intent(一)

    Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an opera ...

  5. Android组件系列----Intent详解(转载笔记)

    [正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用 ...

  6. Android组件系列----Intent详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  7. Android 基础知识 -- Intent

    Intent (意图) Android通信的桥梁,可以通过Intent启动Activity , Service , 发送指定广播到Receiver <1> 启动Activity : sta ...

  8. Android安全之Intent Scheme Url攻击

    0X01 前言 Intent scheme url是一种用于在web页面中启动终端app activity的特殊URL,在针对intent scheme URL攻击大爆发之前,很多android的浏览 ...

  9. Android学习之 Intent详解

    一. Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯.比如说调用startActivity()来 ...

随机推荐

  1. Android 开发性能优化之SparseArray(一)

    多数Android开发者都知道在Android中可以使用HashMap来映射一种对应关系,在java开发中HashMap也算是一种很重要的数据存储结构.然后很多人在Android开发中多数都会用Has ...

  2. 【Android】Android程序保护与破解浅析

    此文源自组内成员分享的PPT,其他成员的文档由于没有得到授权,暂不公开. 本文命令如果没有特殊注明,均为windows 7环境. 本文只涉及大概的知识点,不涉及具体的细节,需要注意. 反编译 apkt ...

  3. 招商银行支付dll在64位windows系统下的注册使用问题

    按照文档中的说明,注册完dll后,依然报找不到COM组件的错误.尝试过以下方法: 1.在VS中将项目编译目标改为x86,只能解决VS可以启动程序的问题,一部署到IIS中就出错. 2.估计是因为权限问题 ...

  4. Html笔记(五)表格

    表格标签: <table> 组成: 标题标签: <caption>给表格提供标题. 表头标签: <th> ,一般对表格的第一行或者第一列进行格式化,就是粗体显示,并 ...

  5. PHP中的empty()和isset()的比较

  6. 动态规划之HDU水题

    做水题的感觉真好系列 HDU 2084 数塔 1: 12: 1 23: 1 2 34: 1 2 3 45: 1 2 3 4 5 dp[i][j]第i行第j个数取得的最大值dp[i][j] = max( ...

  7. linux定时运行命令脚本——crontab

    cron和crontab定时任务: http://blog.csdn.net/ithomer/article/details/6817019 http://blog.sina.com.cn/s/blo ...

  8. 让SecureCRT vi中显示多色彩

    方法1: 1.打开SecureCRT___选项__会话选项___仿真 右边的中端选择linux,把ANSI 颜色和使用颜色方案打上钩. 2.选择外观,右边的使用颜色和闪烁都打上钩. 3.重新连接使所该 ...

  9. Windows Azure功能更新: SDK 2.1发布,Traffic Manager集成

    最近,Windows Azure又进行了更新 Windows Azure SDK 2.0发布没多久,2.1版(for .NET)就在今天发布了.2.1版本在管理功能上进行了重大改进,包括Visual ...

  10. SSIS执行SQL任务时加入参数

    昨天开发的SSIS包中,获取ERP系统parttran表时,数据量比较大,达到255万多,因为SQL执行的关系,致使处理时效率很慢,所以就想用增量更新的方法处理该表数据.这是增量更新的SQL任务集合, ...