1. 程式人生 > >android之Intent複雜資料的傳遞一(Object型別的資料)

android之Intent複雜資料的傳遞一(Object型別的資料)

使用Serializable方式

  前提:Object需要實現Serializable介面

Serializable方式傳遞Object的語法:bundle.putSerializable(key,object);

Serializable方式接收Object的語法:object=(Object) getIntent().getSerializableExtra(key);
實現Serializable介面就是把物件序列化,然後再傳輸,和Java的常用程式設計沒什麼明顯區別,而且Object不需要明顯改變,推薦用這種方式,具體步驟如下:

1)首先建立一個PersonInfo實體類實現Serializable

介面,然後定義nameaddressage屬性,再生成相應的getset方法,具體程式碼如下:

package zjh.android.bean;
 
import java.io.Serializable;
 
@SuppressWarnings("serial")
public class PersonInfo implements Serializable{
private String name;
private String address;
private int age;
public PersonInfo() {
}
 
public PersonInfo(String name,String address,int age){
this.name = name;
this.address = address;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

2)建立一個用來發送Serializable資料型別的SendActivity類,具體實現程式碼如下:

package zjh.android.lx;
 
import zjh.android.bean.PersonInfo;
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 SendActivity extends Activity {
private PersonInfo personInfo;
private Button send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_send);
this.send = (Button)super.findViewById(R.id.send);
this.send.setOnClickListener(new OnClickListenerImpl());
}
private final class OnClickListenerImpl implements OnClickListener{
 
@Override
public void onClick(View v) {
personInfo = new PersonInfo("張三", "廣州", 22);
Intent intent = new Intent(SendActivity.this,ReceiveActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("personInfo", personInfo);
intent.putExtras(bundle);
SendActivity.this.startActivity(intent);
}
}
 
}

3)建立一個用來接收Serializable資料型別的ReceiveActivity類,程式碼如下:

package zjh.android.lx;
 
import zjh.android.bean.PersonInfo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
 
public class ReceiveActivity extends Activity {
private TextView show;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.receive);
this.show = (TextView) super.findViewById(R.id.show);
Intent intent = super.getIntent();
PersonInfo personInfo = (PersonInfo) intent
.getSerializableExtra("personInfo");
this.show
.setText("name=" + personInfo.getName() + "\n" + "address="
+ personInfo.getAddress() + "\n" + "age="
+ personInfo.getAge());
}
}

4)在AndroidMainfest.xml檔案中新增一個相應的activity,具體如下:

<activity android:name="zjh.android.lx.ReceiveActivity"/>

此時,通過Intent傳遞Serializable資料型別的資料就實現了。

相關推薦

androidIntent複雜資料傳遞Object型別資料

使用Serializable方式   前提:Object需要實現Serializable介面 Serializable方式傳遞Object的語法:bundle.putSerializable(key,object); 用Serializable方式接收Object的語法:o

androidIntent複雜資料傳遞ArrayList型別資料

傳遞ArrayList<String> 傳遞ArrayList<String>型別資料的方法 1)在建立的專案工程裡面建立一個用來發送資料的SendActivity類,具體程式碼如下: package zjh.android.lx; import

Android 資料傳遞() Activity之間的資料傳遞

bundle Bundle類是一個key-value對。Activity之間的資料通訊可以通過bundle類來實現資料的儲存。即將資料放入bundle裡面,將Bundle傳遞。他的用法如下: //新建Bundle,將資料放入bundle類裡面 Bundle mBundle

Android Java層UI渲染實現Context的建立

在Android應用程式的四大元件中,只有Activity元件與UI相關,它描述的是應用程式視窗,因此我們通過它的UI實現來分析Android系統在Java層的UI實現。 首先,我們得從Activity的啟動開始: 再我們呼叫startActivity後,最終會呼叫startAc

《程式碼整潔道》學習筆記前三章

我們都曾經瞟一眼自己親手造成的混亂,決定棄之於不顧,走向新的一天。 我們都曾經說過有朝一日要回頭清理。 當然,那是我們都沒聽過勒布朗法則:稍後等於永不(Later equals never)。 隨著混亂的增加,團隊的生產力不斷下降,趨向於零。 假如你是位醫生,病人請求你

物聯網LoRa開發與應用M0工程建立

M0工程建立主要分如下四步: 1、IO埠配置 2、時鐘配置 3、外設配置 4、printf函式重定向 IO配置: 1、看懂原理圖 2、建立IO功能對映表 3、通過STM32Cubemx配置IO工作模式 STM32F051K8U6 IO功能對映表 序號

androidScrollView裡巢狀ListView都可滾動

http://www.eoeandroid.com/thread-246995-1-1.html 其實實現原理很簡單ScrollView有一個方法requestDisallowInterceptTouchEvent(boolean);這個方法是設定是否交出ontouch許

AndroidIntent

Android Intent 前一篇(Android之Intent(一))講解過A(它用來調起B界面,這裏先理解為父界面) 可以向B(這裏先理解為子界面), 本篇正好是一個逆反的過程 , 即B向A傳遞數據。 一 : 界面設計① ,A(activity_main.xml)重要控件:1‘ (TextVie

Android 使用Intent和Bundle傳遞資料及如何傳遞enum

                        轉載請標明出處:

iOS每日———————————————整合阿里雲的移動資料統計SDK 埋點統計

阿里雲的移動統計SDK的匯入方法 這些都很簡單的此處一筆帶過 接下來說問題 當年自身專案中有支付寶支付的時候 支付寶會和阿里雲的SDK衝突 出現原因和解決方法如下: 整合移動資料分析和支付寶的SDK,出現UTDID衝突,可以下載支付寶提供的iOS&Androi

淺談AndroidActivity 視窗顯示流程介紹

7 Activity 視窗顯示流程介紹 Activity 視窗顯示,其實就是Décor View繪製並顯示的過程,但是在繪製之前,Décor View需要先做下面兩件事情: 1)  確定Décor View的大小 2)  對Décor View進行佈局操作,也就是確定Déc

Android Binder 分析——資料傳遞Parcel

前面 binder 原理和通訊模型中在介面實現部分(Bp 和 Bn)中應該看到很多地方都有使用 parcel。這個 android 專門設計用來跨程序傳遞資料的,實現在 native,java 層有介面(基本上是 jni 馬甲)。照例先說下原始碼位置(4.4 的): 12

Androidjson複雜資料解析

關於json的介紹這裡不提,我們這次只講如何解析較為複雜的json資料,我會通過案例加導圖的方式將方法鋪展開來向大家闡述!力求讓大家深入瞭解json資料的解析方式! 關於複雜json資料:這裡指的複雜json資料並不是指那種多而雜的資料,而是指json資料不是

詳解androidAnimation監聽方法AnimationListener

先寫一個類繼承AnimationListener,看看具體方法: 具體方法大家也已經從圖片中也有些瞭解了,那接下來就看看實戰中,又怎麼使用呢: 1. 先看看佈局檔案和效果圖:     

資料專案電商數倉使用者行為採集

一、資料倉庫概念 資料倉庫(Data Warehouse)   是為企業所有決策制定過程,提供所有系統資料支援的戰略集合。 二、專案需求及架構設計 2.1 專案需求分析   1、專案需求    1)使用者行為資料採集平臺搭建    2)業務資料採集平臺搭建    3)資料倉庫維度建模     &n

android Intent、broadcast

@override tco broadcast ren final 生成 manage draw ets Intent的功能有: 在mainActivity中為按鈕1添加監聽事件: listener1 = new OnClickListener() { @Ove

版本管理Git和GitHub的區別優點和缺點

機制 最大 客戶 內核 文件 敏捷 star 一定的 sch Git 簡介 https://www.yiibai.com/git/getting-started-git-basics.html Git 是一個開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的

? 、cocos2dx如何優化內存使用高級篇

cell 一個 mpc 情況 sha 優化方案 ali 等等 所有 一、內存優化原則 為了優化應用內存,你應該知道是什麽消耗了你應用的大部分內存,答案就是Texture(紋理)!它幾乎占據了90%的應用內存。那麽我們應該盡力去減小我們應用的紋理內存使用,否則我們的應用

javaScript設計模式面向對象編程object-oriented programming,OOP()

email 全局變量 color javascrip 原型 obj 只有一個 沒有 ted 面試的時候,總會被問到,你對javascript面向對象的理解? 面向對象編程(object-oriented programming,OOP)是一種程序設計範型。它講對象

android中圖片的三級cache策略記憶體 檔案 網路

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!