初学Android:意图之intent
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的更多相关文章
- Android中的Intent详解
前言: 每个应用程序都有若干个Activity组成,每一个Activity都是一个应用程序与用户进行交互的窗口,呈现不同的交互界面.因为每一个Acticity的任务不一样,所以经常互在各个Activi ...
- Android总结篇——Intent机制详解及示例总结
最近在进行android开发过程中,在将 Intent传递给调用的组件并完成组件的调用时遇到点困难,并且之前对Intent的学习也是一知半解,最近特意为此拿出一些时间,对Intent部分进行 ...
- android隐式intent使用场景解析
Android 隐式intent相信大家都有用过,大部分场景我们用显式intent已经能满足我们的业务需求,隐式intent大部分都是用来启动系统自带的Activity或Service之类的组件.昨天 ...
- Android学习笔记-Intent(一)
Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an opera ...
- Android组件系列----Intent详解(转载笔记)
[正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用 ...
- Android组件系列----Intent详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android 基础知识 -- Intent
Intent (意图) Android通信的桥梁,可以通过Intent启动Activity , Service , 发送指定广播到Receiver <1> 启动Activity : sta ...
- Android安全之Intent Scheme Url攻击
0X01 前言 Intent scheme url是一种用于在web页面中启动终端app activity的特殊URL,在针对intent scheme URL攻击大爆发之前,很多android的浏览 ...
- Android学习之 Intent详解
一. Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯.比如说调用startActivity()来 ...
随机推荐
- Html笔记(十)XHTML XML
XHTML 是可扩展的超文本标记语言(Extensible HyperText Markup Language). XHTML 是 w3c 组织在2000年的时候为了增强HTML推出的,本来是想替代H ...
- HW5.7
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- nyoj 27 水池数目
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...
- 在java中高效的计数器
在编程中,经常会用到HashMap作为计数器,本文简单介绍三种实现方式 第一种,最直观的计数器. public void naiveCounter(String sArr[]) { HashMap&l ...
- android 处理图片之--bitmap处理
-2.从资源中获得bitmap Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawabl ...
- 使用 Infragistics 的 NetAdvantage 组件时替换部分菜单语言的方法
Infragistics 的 NetAdvantage 组件很好用,不过有些自动的菜单默认都是英文的,一直想替换成中文,以下就是研究了一下午整出来的几行代码,貌似网上很难找到此类的相关资料,替换的资源 ...
- Lucene子项目------------------Solr遇到的问题
SolrCore Initialization Failures paper: org.apache.solr.common.SolrException:org.apache.solr.common. ...
- PHP class_exists 检查类是否已定义
(PHP 4, PHP 5) class_exists — 检查类是否已定义 bool class_exists ( string $class_name [, bool $autoload ] ) ...
- Linux下Join命令
Linux下Join命令 最近新上线算法,打算分析起点书籍点击率的波动,原来已经有流程每天每本书籍的点击率数据(文件).之前这种情况都是写代码对不同天的进行合并,后来发现linux下直接就有join命 ...
- 【Android】BroadCast广播机制应用与实例
如何编写广播接收器 第一步:需要继承BroadcastReceiver类,覆写其中的onReceive()方法. class MyBroadcastReceiver extends Broadcast ...