使用bundle在多个activity之间传递数据

做了两个activity,第一个是登录界面,第二个界面显示第一个界面上输入的数据。图如下

第一个界面的代码是:

package org.fengcao.activity;
import org.content.preson.*;
import org.fengcao.activity.test.quitlistener;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;

public class login extends Activity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Button bn = (Button)findViewById(R.id.bn);
		Button quitBT = (Button)findViewById(R.id.quitbt);
		quitBT.setOnClickListener(new quitlistener());
		bn.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				EditText name = (EditText)findViewById(R.id.name);
				EditText passwd = (EditText)findViewById(R.id.passwd);
				RadioButton male = (RadioButton)findViewById(R.id.male);
				String gender = male.isChecked() ? "男 " : "女";
				Person p = new Person(name.getText().toString()
					, passwd.getText().toString() , gender);
				//创建一个Bundle对象
				Bundle data = new Bundle();
				data.putSerializable("person", p);
				//创建一个Intent
				Intent intent = new Intent(login.this
					, test.class);
				intent.putExtras(data);
				//启动intent对应的Activity
				startActivity(intent);
				
			}
		});		
	}
	class quitlistener implements View.OnClickListener
	{
		@Override
		public void onClick(View arg0)
		{
			Log.v("登录界面", "ondestroy");
			System.exit(0);
			onDestroy();
		}
	}
}

第二个activity的代码

package org.fengcao.activity;


import org.content.preson.*;

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


public class test extends Activity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.result);
		TextView name = (TextView)findViewById(R.id.name);
		TextView passwd = (TextView)findViewById(R.id.passwd);
		TextView gender = (TextView)findViewById(R.id.gender);
		EditText name_edit = (EditText)findViewById(R.id.nameedit);
		EditText age_edit = (EditText)findViewById(R.id.age_edit);
		EditText gender_edit = (EditText)findViewById(R.id.gender_edit);
		Button quitBT = (Button)findViewById(R.id.quitbutton);
		quitBT.setOnClickListener(new quitlistener());
		//获取启动该Result的Intent
		Intent intent = getIntent();
		//获取该intent所携带的数据
		Bundle data = intent.getExtras();
		//从Bundle数据包中取出数据
		Person p = (Person)data.getSerializable("person");
		name.setText("姓名:" );
		name_edit.setText(p.getName());
		passwd.setText("年龄:");
		age_edit.setText(p.getPass());
		
		gender.setText("性别:");
		gender_edit.setText(p.getGender());
		
	}
	class quitlistener implements View.OnClickListener
	{
		@Override
		public void onClick(View arg0)
		{
			onDestroy();
		}
	}
	@Override
	public void onDestroy()
	{
		Log.v("QUIT","------------ondestory----------");
		super.onDestroy();
		System.exit(0); 
		
	}
}

第一个activity通过intent启动第二个activity并通过intent传递消息,其中person是一个类的接口函数,代码如下:

package org.content.preson;

import java.io.Serializable;


public class Person implements Serializable
{
	
	private static final long serialVersionUID = 1L;
	
	private Integer id;
	private String name;
	private String pass;
	private String gender;

	public Person()
	{
	}	
	
	/**
	 * @param name
	 * @param pass
	 * @param gender
	 */
	public Person(String name, String pass, String gender)
	{
		this.name = name;
		this.pass = pass;
		this.gender = gender;
	}
	public Integer getId()
	{
		return id;
	}
	public void setId(Integer id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getPass()
	{
		return pass;
	}
	public void setPass(String pass)
	{
		this.pass = pass;
	}
	public String getGender()
	{
		return gender;
	}
	public void setGender(String gender)
	{
		this.gender = gender;
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值