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

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-08-21 17:39:38

android_Intent对象初步(Activity传统的价值观念)的相关文章

struts2移除标签button的id传统的价值观念问题

<!--显示数据列表--> <tbody id="TableData" class="dataContainer" datakey="departmentList"> <s:iterator value="#departmentList"> <tr class="TableDetail1 template"> <td><a href=&quo

Intent对象初步

说明:初探Intent对象.这里主要讲使用Intent对象在Activity之间传递数据的方法. 例子:由MainActivity→OtherActivity的跳转过程中,把数据传递给OtherActivity并显示出来. 在讲步骤之前,先来看看Intent究竟是个什么东西先. Intent对象的基本概念: 1.Intent对象是Android应用程序组件之一: 2.Intent对象在Android系统当中表示一种意图: 3.Intent当中最重要的内容是action和data. 步骤:1.在M

Android 向Application对象添加Activity监听

可以建立对象把Application.ActivityLifecycleCallbacks接口中的函数实现,并利用public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)函数向application添加代理对象. 比如以下代码,在本程序的全部activity的resume时都会调用. @Override public void onActivityResumed

Application对象、Session对象、Cookie对象、Server对象初步认识

Application对象:记录应用程序参数的对象 用于共享应用程序级信息,即多个用户共享一个Application对象.在第一个用户请求ASP.NET文件时,将启动应用程序并创建Application对象.一旦Application对象被创建,它就可以共享和管理整个应用程序的信息.在应用程序关闭之前,Application对象一直存在.所以,Application对象是用于启动和管理ASP.NET应用程序的主要对象 属性: Application.AllKeys:返回全部Application

创新与创业管理

第1章 创业与创业思维 第一部分本章概要 1.1 重点概念 1. 创业:创业是不拘泥于当前资源条件的限制下对机会的追寻,组合不同的资源以利用和开发机会并创造价值的过程. 2. 创业过程:考察创业者在新企业创建情境下开展的活动,关注创业者做了什么,包括:产生创业动机.识别创业机会.整合资源.创建新企业或是新事业.实现机会价值.收获回报等六个方面. 3. 创业活动:主要指创业者及其团队为孕育和创建新企业或新事业而采取的行动,包括新企业的生存和初期发展阶段的活动. 3. 机会型创业:指在发现或创造新的

[摘录]第8章 与非美国人谈判的技巧

第四部分 知己知彼 互利共赢可事实上,电影和电视节目并没有深刻揭示出一个真实的美国,而要想了解美国人的商业方式,就必须了解美国人的真实心态和思维方式.反过来说,很多美国人也都以为自己很了解那些非美国人.他们仍然会坚守自己的生活方式,许多传统的价值观念也仍然不会有任何大的变化.我相信,虽然如今美国人和非美国人之间有很多类似之处,但彼此之间的商业方式仍然存在着巨大的差异. 第8章 与非美国人谈判的技巧1.美国人如何谈判如今我们只相信协议,一旦一方试图违反协议,我们就会立刻诉诸法庭,并不惜一切代价挽回

乔春洋:品牌文化的发展趋势

当今社会,人类已步入一个以信息技术产业为代表的知识经济时代.主要表现在:第一,科学技术的日新月异和社会生产力的迅猛发展,加速了产品的更新换代,各种新产品和高科技产品层出不穷,由此推动了消费内容和生活方式的不断更新:第二:世界经济一体化进程加快,国际大市场逐渐形成,产品在各国之间畅通无阻,消费者面临的已不仅仅是本国市场本国产品,而是直接面对国际市场和各国产品:第三,电子.信息技术的迅速发展和广泛应用,给传统的商品交换方式带来强烈冲击,也为消费者实现购物方式和消费方式的根本变革提供了可能:第四,现代

三大分析法——SWOT、PEST、波特五力

SWOT分析法 「SWOT分析模型简介」 (也称TOWS分析法.道斯矩阵).在现在的战略规划报告里,SWOT分析应该算是一个众所周知的工具.来自于麦肯锡咨询公司的SWOT分析,包括分析企业的优势(Strengths).劣势(Weaknesses).机会(Opportunities)和威胁(Threats).因此,SWOT分析实际上是将对企业内外部条件各方面内容进行综合和概括,进而分析组织的优劣势.面临的机会和威胁的一种方法. 通过SWOT分析,可以帮助企业把资源和行动聚集在自己的强项和有最多机会

Android应用程序窗口(Activity)的视图对象(View)的创建过程分析

从前文可知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口.每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图.应用程序窗口视图是真正用来实现UI内容和布局的,也就是说,每一个Activity组件的UI内容和布局都是通过与其所关联的一个Window对象的内部的一个View对象来实现的.在本文中,我们就详细分析应用程序窗口视图的创建过程. 在前面Android应用程序窗口(Activity)实现框架简要介绍和学习计划一文中提到,应用程序