使用Intent实现Activity之间传值与跳转(转)

转:http://blog.csdn.net/cjjky/article/details/6337447

在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如何在多个Activity之间进行跳 转和传值呢?我们可以通过 Intent 对象来实现上面所述的功能。本例通过在FirstActivity中实现两个数进行相加,把相加的结果值通过Intent把值传递到 SecondActivity中。

我们新建一个Android的工程,有两个Activity,分别为FirstActivity 和 SecondActivity ,同时在资源文件下的 res/layout 目录下也有两个布局文件,分别为 main.xml【对应FirstActivity】和secondlayout.xml【对应SecondActivity】,目录的结构图如下:

在 main.xml 布局文件中添加两个EditText控件,一个TextView控件,一个Button按钮,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<EditText
    android:id="@+id/firstNum"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="加"
    android:textSize="20sp"
    />
<EditText
    android:id="@+id/secondNum"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<Button
    android:id="@+id/btnCalc"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="计算结果"/>
</LinearLayout>

在secondlayout.xml布局文件中,添加一个EditText控件来显示从FirstActivity中传过来的值。代码如下:

<?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">
  <EditText
     android:id="@+id/result"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"/>
</LinearLayout>

在FirstActivity中的代码如下:

package com.andyidea.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class FirstActivity extends Activity {

    EditText firstNum,secondNum;
    Button calc;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        firstNum = (EditText)findViewById(R.id.firstNum);
        secondNum = (EditText)findViewById(R.id.secondNum);
        calc = (Button)findViewById(R.id.btnCalc);
        calc.setOnClickListener(new View.OnClickListener() {

		@Override
		public void onClick(View v) {
		        String num1 = firstNum.getText().toString();
		        String num2 = secondNum.getText().toString();

			Intent intent = new Intent();
			intent.putExtra("one", num1);
			intent.putExtra("two", num2);
			intent.setClass(FirstActivity.this, SecondActivity.class);
				startActivity(intent);
			}
		});
    }
}

在SecondActivity中的代码如下:

package com.andyidea.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;

public class SecondActivity extends Activity {

	EditText result;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.secondlayout);

		result = (EditText)findViewById(R.id.result);

		Intent intent = getIntent();
		String num1 = intent.getStringExtra("one");
		String num2 = intent.getStringExtra("two");
		int ret = Integer.parseInt(num1) + Integer.parseInt(num2);
		result.setText(ret+"");
	}
}

同时别忘了在Manifest配置文件中对FirstActivity和SecondActivity进行注册

时间: 2024-10-11 12:56:28

使用Intent实现Activity之间传值与跳转(转)的相关文章

activity之间传值,serializable问题

activity之间传值,代码如下: AppointMentInfo2 info = (AppointMentInfo2) datas.get(position); Intent intent = new Intent(C1_AppointmentActivityT.this,C2_WriteAppointmentAty.class); intent.putExtra("info", info); startActivity(intent); 一直报java.lang.RuntimeE

从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭

2.3 使用 Intent 在 Activity 之间穿梭 在上一节中我们已经学会了如何创建一个 Activity 了.对于一个应用程序来说,肯定不可能只有一个 Activity.下面就来学习多个 Activity 是专门跳转的. 2.3.1 使用显式 Intent 对于创建 Activity 的过程我们已经很熟悉了,下面快速的创建第二个 Activity.取名 SecondActivity.好了第二个 Activity 已经创建好了,创建好了 Activity 后不要忘了需要在 Android

【Android基础】利用Intent在Activity之间传递数据

前言: 上一篇文章给大家聊了Intent的使用方法.怎样用Intent启动Activity和隐式Intent.这一篇文章给大家聊聊怎样利用Intent在Activity之间进行沟通. 从一个Activity获取返回结果: 启动一个Activity不不过startActivity(Intent intent)一种方法.你也能够通过startActivityForResult()启动一个Activity而且在它退出的时候收到一个返回结果. 比方.你能够调用系统相机在你的应用中,拍了一张照片,然后返回

Android开发系列(十三):Intent实现Activity之间的转换以及startActivityForResult传递参数

一.Intent实现Activity之间的切换 1.构造函数法: Intent intent = new Intent(this , OtherActivity.class); //两个参数:第一个是上下文对象,第二个是要切换的Activity的class字节码 startActivity(intent); 2.setClass方法: Intent intent = new Intent(); intent.setClass(this, OtherActivity.class); //设置要激活

intent实现Activity之间跳转的各种传值

一.在Activity之间传递String类型的数据 传递 @Override public void onClick(View v) { String num1 = firstNum.getText().toString(); String num2 = secondNum.getText().toString(); Intent intent = new Intent(); intent.putExtra("one", num1); intent.putExtra("tw

startActivityForResult 用在于多个Activity之间传值时一些需要注意的用法

requestCode 请求码,即调用startActivityForResult() 传递过去的值 resultCode 结果码,结果码用于标识返回数据来自哪个新Activity 举个例子可能会更明白: 1.在Activity中得到新打开Activity 关闭后返回的数据 package com.google_acmer.activitys; import android.app.Activity; import android.content.Intent; import android.o

Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]

http://blog.csdn.net/cjjky/article/details/6441104 在Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口.下面我们以一个完整的例子来说明. 1.新建一个A

Intent 在Activity之间传递参数 制作两个数的乘积

首先取得text中的值 首先定义两个Editext 获取这两个控件 one=(editText)findViewBYId(R.id.editText1); two=(editText)findViewBYid(R.id.editText2); //定义两个变量 onestr  twostr 从edittext里面取出值来分别放到 onestr 和 twostr中 String onestr= one.getText().toString(); String twostr=one.getText(

android中使用Intent在activity之间传递数据

android中intent传递数据的简单使用: 1.使用intent传递数据: 首先将需要传递的数据放入到intent中 Intent intent = new Intent(MainActivity.this,OtherActivity.class); intent.putExtra("name", "使用Intent传递数据"); startActivity(intent); 然后再目标activity中接收数据: Intent intent=getInten