android页面间传递对象

android传递对象有两种方式:

一种是Serializable和Parcelable

对于第一种方式:

import java.io.Serializable;

public class ShopData implements Serializable {

public String shopId;

public String name;

public String url;

public String info;

public String getShopId() {

return shopId;

}

public void setShopId(String shopId) {

this.shopId = shopId;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getInfo() {

return info;

}

public void setInfo(String info) {

this.info = info;

}

}

传递值的时候这样来传递:

	<span style="white-space:pre">			</span>Intent intent = new Intent();
				ShopData shopData = (ShopData)mAdapter.getItem(position);
//				intent.putExtra("detail", shopData);
				Bundle bundle = new Bundle();
				bundle.putSerializable("shop", shopData);
				intent.putExtra("detail", shopData);
				intent.setClass(MainActivity.this, DetailShopActivity.class);
				MainActivity.this.startActivity(intent);

取值的时候:

<span style="white-space:pre">		</span>Intent intent = getIntent();
//		ShopData data = intent.getParcelableExtra("detail");
		ShopData data = (ShopData)intent.getSerializableExtra("detail");

对于第二种方式:

import android.os.Parcel;
import android.os.Parcelable;

public class ShopData implements Parcelable{

	public String shopId;
	public String name;
	public String url;
	public String info;

	public ShopData(Parcel in) {
		readFromParcel(in);
	}

	public ShopData() {
	}

	public static final Parcelable.Creator<ShopData> CREATOR = new Parcelable.Creator<ShopData>() {

		public ShopData createFromParcel( Parcel in ){
			return new ShopData(in);
		}

		public ShopData[] newArray( int size){
			return new ShopData[size];
		}
	};

	@Override
	public int describeContents() {
		return 0;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(shopId);
		dest.writeString(name);
		dest.writeString(url);
		dest.writeString(info);

	}
	public void readFromParcel( Parcel in ){
		shopId = in.readString();
		name = in.readString();
		url = in.readString();
		info = in.readString();
	}

}

传递的时候这样写:

	<span style="white-space:pre">			</span>Intent intent = new Intent();
				ShopData shopData = (ShopData)mAdapter.getItem(position);
				intent.putExtra("detail", shopData);
				intent.putExtra("detail", shopData);
				intent.setClass(MainActivity.this, DetailShopActivity.class);
				MainActivity.this.startActivity(intent);

取值的时候:

<span style="white-space:pre">		</span>Intent intent = getIntent();
		ShopData data = intent.getParcelableExtra("detail");

android页面间传递对象

时间: 2024-12-17 06:20:26

android页面间传递对象的相关文章

.net中常用的几种页面间传递参数的方法

转自:http://www.cnblogs.com/lxshanye/archive/2013/04/11/3014207.html 参考:http://www.cnblogs.com/zhangkai2237/archive/2012/05/06/2486462.html 1. 使用QueryString变量    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或

页面中传递对象的方法

1.QuerySting在页面间传递值 这种方法的写法:在要传递值的页面,Response.Redirect(url),值包含在在url中.接收值得页面,Request.QueryString["变量名"]. 这是使用起来很简单的一种方式,但是它不是很安全,因为值会在浏览器里的地址栏里显示.并且它也不能传递对象,对长度也有限制,如果要传递的值很多,且对安全要求也高的话,这种方式就不适合了.2.Session变量 我们通常在一个页面中,将值放到session变量中,在另外几个页面使用它.

JSP页面间传递参数的5种方法

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp?action=transparams&detail=directe">直接传递参数< /a> 特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码: response.sendRedirect("thexuan.jsp?acti

localstroge可以在页面间传递数值;

连接地址为:http://4.suancai.sinaapp.com/localstorg/a.html 原理是,a页面设置了sessionstorge,b页面可以访问到; 并且已关闭浏览器,sestionstorge存储的数据就会清零: 而localstorg不会:会继续存在手机的浏览器的内存中: 而原先页面传递数据的话一般我都会用url,将数据放到url中: 各有用途: localstorg只是用本地用户 url带上数据可以给外人看到,而localstorg不可以: 现在不清楚的时怎么设置c

jsp页面间传递参数 中文乱码问题(zz)

jsp页面间传递参数 中文乱码问题 window.location="Test.jsp?param1="+encodeURI(encodeURI(str));//对中文参数进行双层编码后再传递 URLDecoder.decode(request.getParameter("param1"),"utf-8");//对中文参数进行解码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ASP.NET 页面间传递参数的方法

这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面.这三种方法是:响应重定向,服务端传输和新的跨网页提交特性.我们可以已经熟悉前两种技术了,因此,我们只是简要地复习一下它们,然后我们会将主要精力放到学习如何使用跨网页提交特性,以及阐述一下这种方法和响应重定向以及服务传输方式有什么不同. 一.响应重定向方法 响应重定向方法是目前为止将一个网页重定向到另一个网页的最简单的方法的最简单的方法.当Web服务器接到一个重定向请求后,它会将一个响应

ios页面间传递参数四种方式

ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Delegate来传递. IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容,主要是来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看详细内容.在IOS开发里两个UIView窗口之间传递参数方法有很多,比如 前面3种方法,暂且不说,这次主要学习如何使用通过Dele

Java WEB 之页面间传递特殊字符

本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 昨天在做项目的时候,有一个页面间传递特殊字符的需求,查了一些资料.如今将自己的经验写出来. 首先.在前台编码 var fckPurpose=encodeURIComponent($.trim(jQuery("#fckPurpose").val())); encodeURIComponent.encodeURI和escape三个函数区别在于个别字符是否编码的问题. 參考: escape().encodeURI().e

ASP.NET 页面间传递参数的方法(转)

ASP.NET 页面间传递参数的方法 http://www.cnblogs.com/eoiioe/archive/2008/04/08/1142247.html 这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面.这三种方法是:响应重定向,服务端传输和新的跨网页提交特性.我们可以已经熟悉前两种技术了,因此,我们只是简要地复习一下它们,然后我们会将主要精力放到学习如何使用跨网页提交特性,以及阐述一下这种方法和响应重定向以及服务传输方式有什