Android高階之使用Intent傳遞物件02

2021-07-25 16:56:41 字數 2122 閱讀 4479

使用intent來傳遞物件通常有兩種實現方式:serializable和parcelable。即把物件序列化。下面來簡單對兩個進行使用:

serializable

1,比如有個person類,其中包含name和age兩個屬性,將其先用serializable序列化。

public

class

person

implements

serializable

public

void

setname(string name)

public

intgetage()

public

void

setage(int age)

}

2,firstactivity的寫法:

person person = new person();

person.setname("tom");

person.setage(20);

intent intent = new intent(mainactivity.this,secondactivity.class);

intent.putextra("person_data",person);

startactivity(intent);

3,secondactivity的寫法:

person person = (person)getintent().getserializableextra("person_data");

int age = person.getage();

string name = person.getname();

parcelable

1,還是使用person類,這次是實現parcelable介面。

public

class

person

implements

parcelable

public

void

setname(string name)

public

intgetage()

public

void

setage(int age)

@override

public

intdescribecontents()

@override

public

void

writetoparcel(parcel dest, int flags)

public

static

final parcelable.creatorcreator = new creator()

@override

public person newarray(int size)

};}

2,firstactivity的寫法:

person person = new person();

person.setname("tom");

person.setage(20);

intent intent = new intent(mainactivity.this,secondactivity.class);

intent.putextra("person_data",person);

startactivity(intent);

3,secondactivity的寫法:

person person = (person)getintent().getparcelableextra("person_data");

int age = person.getage();

string name = person.getname();

總結:serializable會把整個物件進行序列化,而parcelable的實現原理是將乙個完整的物件進行分解,而分解後的每一部分都是intent所支援的資料型別。因此,parcelable的效率會高於serializable,所以更加推薦使用parcelable的方式來實現intent傳遞物件的功能。

Android學習筆記高階15之Shader渲染

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!android提供的shader類主要是渲染影象以及一些幾何圖形。shader有幾個直接子類 bitmapshader 主要用來渲染影象 lineargradient 用來進行線性渲染 radialgradient 用來進行環形渲染 sweepgr...

Android學習筆記高階十之Matrix錯切變換

剛開始我也不懂啥叫錯切變換,一看效果圖你就恍然大悟。對影象的錯切變換做個總結 x x0 b y0 y d x0 y0 與之對應的方法是 matrix matrix new matrix matrix.setskew 0.0f,0.5f 再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默...

Android高階2之 陰影製作(Shadow)

陰影製作 包括各種形狀 矩形,圓形等等 以及文字等等都能設定陰影。陰影製作是什麼原理呢?其實很簡單,你需要設定陰影的東西被看作乙個主層。然後在主層下面畫乙個陰影層。陰影製作涉及到乙個重要函式 public void setshadowlayer float radius,float dx,float...