android_Intent对象初步(Activity传统的价值观念)
说明:初步Intent物。主要使用Intent对象在Activity之间传递数据的方法。
样例:由MainActivity→OtherActivity的跳转过程中,把数据传递给OtherActivity并显示出来。
在讲步骤之前,先来看看Intent到底是个什么东西先。
Intent对象的基本概念:
1、Intent对象是Android应用程序组件之中的一个;
2、Intent对象在Android系统其中表示一种意图;
3、Intent其中最重要的内容是action和data。
(还有Component name、Category、Extras、Flags。)
步骤:1.在MainActivity里面生成一个Intent对象,在Intent对象里面使用putExtra()系列方法,把数据放到Intent对象其中去。
activity_main.xml里面放置一个Button,点击跳转到OtherActivity。
<Button
android:id="@+id/btnId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动第二个Activity" />
然后生成Intent,使用putExtra()向Intent对象其中存储数据。
package com.away.b_04_intent; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.btnId);
button.setOnClickListener(new ButtonListener());
} class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, OtherActivity.class); intent.putExtra("com.away.b_04_intent.Age", 21);
intent.putExtra("com.away.b_04_intent.Name", "Chay");
startActivity(intent);
//startActivity(new Intent(MainActivity.this, OtherActivity.class).putExtra("name","Chay").put....);
}
}
}
2.在OtherActivity里面使用getXXXExtra()系列方法从Intent对象其中取出数据。
package com.away.b_04_intent; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView; public class OtherActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other); Intent intent = getIntent();
int age = intent.getIntExtra("com.away.b_04_intent.Age", 10);
String name = intent.getStringExtra("com.away.b_04_intent.Name"); textView = (TextView) findViewById(R.id.textView);
textView.setText(name + ":" + age + "");
}
}
效果图:
上面是传递的数据是比較少的,假设数据比較多。就须要使用Bundle类了,代码例如以下:
MainActivity:
<pre name="code" class="java">Intent intent = new Intent(MainActivity.this, OtherActivity.class); /* 通过Bundle对象存储须要传递的数据 */
Bundle bundle = new Bundle();
/*字符、字符串、布尔、字节数组、浮点数等等。都能够传*/
bundle.putString("Name", "Away");
bundle.putBoolean("Ismale", true); /*把bundle对象assign给Intent*/
intent.putExtras(bundle);
//intent.putExtra("bundle", bundle); startActivity(intent);<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
OtherActivity:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*载入页面*/
setContentView(R.layout.other); /*获取Intent中的Bundle对象*/
Bundle bundle = this.getIntent().getExtras();
// Bundle bundle = getIntent().getBundleExtra("bundle");
/*获取Bundle中的数据,注意类型和key*/
String name = bundle.getString("Name");
boolean ismale = bundle.getBoolean("Ismale");
}
-----------------------------------------------割-----------------------------------------------
ps:有时。在页面跳转之后,须要返回到之前的页面,同一时候要保留用户之前输入的信息。这个时候该怎么办呢?
在页面跳转后,前一个Activity已经被destroy了。假设要返回并显示数据。就必须将前一个Activity再次唤醒,同一时候调用某个方法来获取并显示数据。
要实现这个效果,须要做下面几步:
1. 首先。从A页面跳转到B页面时。不能够使用“startActivity()”方法。而要使用“startActivityForResult()”方法。
2. 在A页面的Activity中,须要重写“onActivityResult()”方法
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
switch(requestCode){
case RESULT_OK:
/*取得来自B页面的数据,并显示到画面*/
Bundle bundle = data.getExtras(); /*获取Bundle中的数据,注意类型和key*/
String name = bundle.getString("Name");
boolean ismale = bundle.getBoolean("Ismale");
}
}
3. 在B页面上加一个返回button,并在事件写例如以下代码:
/*给上一个Activity返回结果*/
B.this.setResult(RESULT_OK,intent);
/*结束本Activity*/
B.this.finish();
比如。选择日期,然后返回。
。
欢迎交流 http://blog.csdn.net/ycwol/article/details/39859341
版权声明:本文博主原创文章,博客,未经同意不得转载。
android_Intent对象初步(Activity传统的价值观念)的更多相关文章
- struts2移除标签button的id传统的价值观念问题
<!--显示数据列表--> <tbody id="TableData" class="dataContainer" datakey=" ...
- Android 向Application对象添加Activity监听
可以建立对象把Application.ActivityLifecycleCallbacks接口中的函数实现,并利用public void registerActivityLifecycleCallba ...
- Activity生命周期,切换,参数传递,bundle(包),值对象,Activity参数返回,Activity的启动模式
Activity代表手机屏幕的一屏,或是平板电脑中的一个窗口.它是android应用中最重要的组成单元之一,提供了和用户交互的可视化界面.在一个Activity中,可以添加很多组件,这些组件负责具体的 ...
- Application对象、Session对象、Cookie对象、Server对象初步认识
Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Applicatio ...
- 24.OGNL与ValueStack(VS)-集合对象初步
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: ...
- 解析图书 XML
Java代码: package com.thinkgem.jeesite.test; import org.dom4j.Attribute; import org.dom4j.Document; im ...
- EasyUI Combobox 默认设置
/** *绑定运营商,默认设置, 演出CMCC, 传统的价值观念1 */ $('#operatingId').combobox({ url:'data_url', valueField:'id', t ...
- 三大分析法——SWOT、PEST、波特五力
SWOT分析法 「SWOT分析模型简介」 (也称TOWS分析法.道斯矩阵).在现在的战略规划报告里,SWOT分析应该算是一个众所周知的工具.来自于麦肯锡咨询公司的SWOT分析,包括分析企业的优势(St ...
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口.每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图.应用程序窗口视图是真正用来 ...
随机推荐
- mysqlbinlog 读取多个文件
[root@zjzc01 binlog]# mysqlbinlog --start-datetime='2016-02-25 00:00:00' --stop-datetime='2016-03-15 ...
- OSCHina技术导向:Java开源QQ工具iQQ
iQQ 使用Java语言跨平台开发,基于腾讯WebQQ 3.0网络协议.可以使用于Java所支持的各种平台上运行.作者基于Linux(Ubuntu 12.04)系统,使用IDE NetBeans开发, ...
- Win7 64 bit 激活工具
下载地址:http://www.3987.com/xiazai/1/18/35487.html 一键运行,重启就激活了,简洁方便!
- poj 2425 A Chess Game_sg函数
题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点 比赛时就差这题没ak,做了几天博弈终于搞懂了. #include <io ...
- [C++ 2011 STL (VS2012 Update4) 源代码阅读系列(2)]熟悉一些宏定义和模版偏特化或叫模版专门化
[C++ 2011 STL (VS2012 Update4) 源代码阅读系列(2)]熟悉一些宏定义和模版偏特化或叫模版专门化 // point_test.cpp : 知识点练习和测试,用于单步调试,跟 ...
- linq to sql简单使用
1.新建一个winform项目. 2.添加一个Linq to Sql 类,命名为Northwind 3.打开服务器资源管理器,将表拖动到linq to sql 类,实体类就由Vs生成了 4.实例化Da ...
- javascript模式——Facade
Facade模式为许多代码提供一个方便的接口,不现实代码实现的复杂性,这样,使用者只需要关心他的使用接口就可以使用. 下面来看一段Facade模式的运用,绑定事件在浏览器之间是不一样的,利用Facad ...
- 使用 HttpWebRequest 发送模拟 POST 请求
使用HttpWebRequest发送模拟POST请求 网页中,如果form的method="POST",这时点击submit按钮可以给服务器发送了一个POST请求,如果metho ...
- 图的最短路径问题————树上奶牛(tree.cpp)
和往常一样,继续从题目引入 树上奶牛 (tree.cpp) [题目描述] 农夫John的奶牛不是住在地上而是住在树上的QWQ. 奶牛之间需要串门,不过在串门之前他们会向John询问距离的大小.可是Jo ...
- Servle原理
这篇博客将以Tomcat为例讲一讲Servlet的原理 Servlet容器 Servlet与Servlet容器的关系举个不恰当的例子就像枪和子弹的关系.而Servlet就是子弹,容器就是枪.子弹都有统 ...