首先,在这里稍微介绍一下意图(Intent)的概念:

Intent(意图)主要是解决Android应用的各项组件之间的通讯。

Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 通过Intent实现Activity之间数据传递步骤如下: 1、建立两个Activity, 分别作为发送端和接受端;

2、在发送端的Activity里面创建Intent对象,给Intent对象附加数据进去;

3、在接收端通过getIntent()获取传递过来的Intent对象,然后取出数据显示到TextView。


下面通过本人写的一个小例子代码来讲解,首先看一下运行的效果:

发送端MainActivity截图:

Android入门篇二:使用意图在Activity之间传递数据_第1张图片

接收端OtherActivity截图:

Android入门篇二:使用意图在Activity之间传递数据_第2张图片


以下是本项目的源代码:

一、MainActivity.java

package com.intent.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button btn;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        btn = (Button)findViewById(R.id.btOpenOtherActivity);        btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//定义一个意图Intent intent = new Intent(MainActivity.this,OtherActivity.class);//这里使用Bundle来传递数据Bundle data = new Bundle();data.putString("name", "wulianghuan");data.putString("age", "22");data.putString("address", "上海闵行");intent.putExtras(data);//启动意图startActivity(intent);}});    }}


二、OtherActivity.java

package com.intent.activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class OtherActivity extends Activity {private TextView text_name;private TextView text_age;private TextView text_address;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.other);text_name = (TextView) findViewById(R.id.name);text_age = (TextView) findViewById(R.id.age);text_address = (TextView) findViewById(R.id.address);//获取Intent传递的Bundle对象和它里面的数据Bundle data = getIntent().getExtras();String name = data.getString("name");String age = data.getString("age");String address = data.getString("address");//设置文本框的数据text_name.setText("姓名:"+name);text_age.setText("年龄:"+age);text_address.setText("地址:"+address);}}

三、布局文件main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="这是:MainActivity" />        <Button         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/btOpenOtherActivity"        android:text="打开OtherActivity"/></LinearLayout>

四、布局文件other.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >        <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="这里是OtherActivity"/>    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/name"/>    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/age"/>    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/address"/>    </LinearLayout>

最后注意一点:一定不要忘了在AndroidManifest.xml 文件中对添加的Activity进行声明哦:

<activity android:name=".OtherActivity"/>

Ok,大公告成!

更多相关文章

  1. Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)
  2. Android官方架构组件Paging:分页库的设计美学
  3. Android周学习Step By Step(5)--常用widget组件
  4. android 数据库操作 (非ContentProvider)
  5. 详解 Android 的 Activity 组件 -
  6. Android之Activity组件
  7. Android SQLiteOpenHelper Sqlite数据库升级onUpgrade
  8. Android架构组件-Navigation的使用(一)
  9. android基本的数据库创建和使用

随机推荐

  1. Android中启动动画源码讲解
  2. 【翻译】(1)何为Android?(2012-06-30废弃)
  3. android设备添加F1-F12按键功能
  4. android之Tabhost深入讲解二
  5. Android动画播放的常用方式
  6. ContentProvider 翻译
  7. android获得屏幕高度和宽度
  8. Android应用程序安装过程源代码分析(3)
  9. android 获取界面上所有控件
  10. Android开发——控件基础(七)ListView组件: