使用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...