- 浏览: 307715 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u011076522:
写的确实不错,总结的很好,内容大都属实
C/C++内存分配方式 -
水晶魔方:
...
联合编译工具推荐IncrediBuild -
caiwb1990:
又看了一遍~ 越看越清晰~
C/C++内存分配方式 -
caiwb1990:
每次准备面试的时候来瞅瞅。timer_yin 写道好文,正好补 ...
TCP/IP、Http、Socket的区别【转】 -
caiwb1990:
互相学习~kongxuan 写道这个不错,用简单的话将事情讲明 ...
TCP/IP、Http、Socket的区别【转】
今天讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口
第一步:新建一个Android工程命名为IntentDemo
第二步:修改main.xml布局文件
第三步:新建两个类一个是Person.java实现Serializable接口,另一个Book.java实现Parcelable接口,代码分别如下:
Person.java
Book.java
第四步:修改IntentDemo.java,并且新建两个Activity,一个是IntentDemo1.java,别一个是IntentDemo2.java.分别用来显示Person对像数据,和Book对象数据:,代码分别如下:
IntentDemo.java
IntentDemo1.java
IntentDemo2.java
OK 可以了~
第一步:新建一个Android工程命名为IntentDemo
第二步:修改main.xml布局文件
<?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" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Welcome to Mr wei's blog." /> <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Serializable" /> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Parcelable" /> </LinearLayout>
第三步:新建两个类一个是Person.java实现Serializable接口,另一个Book.java实现Parcelable接口,代码分别如下:
Person.java
package cn.caiwb.intent; import java.io.Serializable; public class Person implements Serializable { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Book.java
package cn.caiwb.intent; import android.os.Parcel; import android.os.Parcelable; public class Book implements Parcelable { private String bookName; private String author; private int publishTime; public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPublishTime() { return publishTime; } public void setPublishTime(int publishTime) { this.publishTime = publishTime; } public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() { public Book createFromParcel(Parcel source) { Book mBook = new Book(); mBook.bookName = source.readString(); mBook.author = source.readString(); mBook.publishTime = source.readInt(); return mBook; } public Book[] newArray(int size) { return new Book[size]; } }; public int describeContents() { return 0; } public void writeToParcel(Parcel parcel, int flags) { parcel.writeString(bookName); parcel.writeString(author); parcel.writeInt(publishTime); } }
第四步:修改IntentDemo.java,并且新建两个Activity,一个是IntentDemo1.java,别一个是IntentDemo2.java.分别用来显示Person对像数据,和Book对象数据:,代码分别如下:
IntentDemo.java
package cn.caiwb.intent; 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 IntentDemo extends Activity implements OnClickListener { private Button sButton,pButton; public final static String SER_KEY = "cn.caiwb.intent.ser"; public final static String PAR_KEY = "cn.caiwb.intent.par"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupViews(); } public void setupViews(){ sButton = (Button)findViewById(R.id.button1); pButton = (Button)findViewById(R.id.button2); sButton.setOnClickListener(this); pButton.setOnClickListener(this); } //Serializeable传递对象的方法 public void SerializeMethod(){ Person mPerson = new Person(); mPerson.setName("frankie"); mPerson.setAge(25); Intent mIntent = new Intent(this,IntentDemo1.class); Bundle mBundle = new Bundle(); mBundle.putSerializable(SER_KEY,mPerson); mIntent.putExtras(mBundle); startActivity(mIntent); } //Pacelable传递对象方法 public void PacelableMethod(){ Book mBook = new Book(); mBook.setBookName("Android Tutor"); mBook.setAuthor("Frankie"); mBook.setPublishTime(2010); Intent mIntent = new Intent(this,IntentDemo2.class); Bundle mBundle = new Bundle(); mBundle.putParcelable(PAR_KEY, mBook); mIntent.putExtras(mBundle); startActivity(mIntent); } //铵钮点击事件响应 public void onClick(View v) { if(v == sButton){ SerializeMethod(); }else{ PacelableMethod(); } } }
IntentDemo1.java
package cn.caiwb.intent; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class IntentDemo1 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView mTextView = new TextView(this); Person mPerson = (Person)getIntent().getSerializableExtra(ObjectTranDemo.SER_KEY); mTextView.setText("You name is: " + mPerson.getName() + "/n"+ "You age is: " + mPerson.getAge()); setContentView(mTextView); } }
IntentDemo2.java
package cn.caiwb.intent; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class IntentDemo2 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView mTextView = new TextView(this); Book mBook = (Book)getIntent().getParcelableExtra(ObjectTranDemo.PAR_KEY); mTextView.setText("Book name is: " + mBook.getBookName()+"/n"+ "Author is: " + mBook.getAuthor() + "/n" + "PublishTime is: " + mBook.getPublishTime()); setContentView(mTextView); } }
OK 可以了~
发表评论
-
Android多线程:预读实现
2012-04-08 00:22 2973上一篇博文我们可以知道,使用AsyncTask有导致应用FC的 ... -
Android多线程:AsyncTask的分析
2012-04-05 13:34 4591开发Android应用的过程中,我们需要时刻注意保障应用的稳定 ... -
Android异步4:深入AsyncTask原理
2012-03-01 09:12 4801AsyncTask的本质是一个线程池,所有提交的异步任务都会在 ... -
Android异步3:AsyncTask更新UI
2012-02-29 10:13 1345前天写了Thread+Handler的 ... -
Android异步2:深入详解 Handler+Looper+MessageQueue
2012-02-28 10:15 1661Android使用消息机制实现 ... -
Android异步1:Thread+Handler更新UI
2012-02-27 14:01 2231每个Android应用程序都运行在一个dalvik虚拟机进程中 ... -
WebView及js
2012-02-20 09:37 1282在Android中通过WebView控 ... -
Android用线程应注意
2012-02-17 09:36 1375我们都知道Hanlder是线程与Activity通信的桥梁,我 ... -
Android用线程应注意
2012-02-17 09:35 1我们都知道Hanlder是线程 ... -
Android Google Api 获取地址
2012-02-16 09:38 3339我们获取Location的目的之一肯定是有获取这个位置的详细地 ... -
Android获取经纬度
2012-02-16 09:34 4414Location 在Android 开发中还是经常用到的,比如 ... -
Android启动已安装应用
2012-02-15 22:45 1166如何在一个应用中 通过某个事件,而去启动另外一个已安装的应用。 ... -
Android 获取Ip
2012-02-15 22:41 1114我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址, ... -
布局定义菜单--MenuInflater的使用
2012-02-14 10:42 2195传统意义上的定义菜单感觉比较繁琐,当我们使用MenuInfla ... -
LayoutInflater的使用
2012-02-13 11:58 1336在实际开发种LayoutInflater这个类还是非常有用的, ... -
自定义属性
2012-02-13 11:54 1120在xml 文件里定义控件的属性,我们已经习惯了android: ... -
自定义View
2012-02-13 11:37 986对于初学着来说,他们习惯了Android 传统的页面布局方式, ... -
Android Service 服务详细讲解
2012-01-16 09:38 1000Android 的Service 和 Handler一样很重, ... -
自定义窗口标题
2011-11-06 14:10 1687我们看到过很多应用,他们的窗口标题行都不是系统默认的 要么有按 ...
相关推荐
android中Intent传递对象的两种方法(Serializable,Parcelable) 简单而又详细的demo,欢迎下载
android Intent传递对象数据 通过对象分别实现Serializable Parcelable接口的两种方法
Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口。 Android中Intent传递对象的两种方法Serializable,Parcelable请点击...
Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable...
主要介绍了Android中的传递有两个方法,一个是Serializable,另一个是Parcelable,对intent传递对象的两种方法感兴趣的朋友一起学习吧
Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat...
Android Intent传递对象的两种方法(Serializable,Parcelable)详细介绍 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle....
Android 数据传递(Intent、Bundle、Serializable、Parcelable等),如项目包有问题请联系我谢谢
Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中...
主要介绍了 Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法的相关资料,需要的朋友可以参考下
在Android中通过Intent使用Bundle传递对象源码
本文实例分析了Android开发中Intent传递对象的方法。分享给大家供大家参考,具体如下: 方法一: 利用方法:public Intent putExtra (String name, Parcelable value)传递一个Parceable的参数,此方法的参数被序列化...
在Android中intent传递对象主要有2种方式分别是,Bundle.putSerializable(Key,Object)和Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了...
Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中...
Parcelable Serializable(传递对象的两种方式)