一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Android中Parcelable的作用實(shí)例解析

Android中Parcelable的作用實(shí)例解析

2019-11-26 15:07shichen2014 JAVA教程

這篇文章主要介紹了Android中Parcelable的作用,對(duì)于Android初學(xué)者有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在android提供了一種類型:Parcel。被用作封裝數(shù)據(jù)的容器,封裝后的數(shù)據(jù)可以通過Intent或IPC傳遞。 除了基本類型以外,只有實(shí)現(xiàn)了Parcelable接口的類才能被放入Parcel中。
 
Parcelable實(shí)現(xiàn)要點(diǎn):需要實(shí)現(xiàn)三個(gè)東西

1)writeToParcel 方法。該方法將類的數(shù)據(jù)寫入外部提供的Parcel中.聲明如下:
writeToParcel (Parcel dest, int flags) 具體參數(shù)含義見javadoc

2)describeContents方法。沒搞懂有什么用,反正直接返回0也可以

3)靜態(tài)的Parcelable.Creator接口。本接口有兩個(gè)方法:

createFromParcel(Parcel in) 實(shí)現(xiàn)從in中創(chuàng)建出類的實(shí)例的功能

newArray(int size) 創(chuàng)建一個(gè)類型為T,長(zhǎng)度為size的數(shù)組,僅一句話(return new T[size])即可。估計(jì)本方法是供外部類反序列化本類數(shù)組使用。

測(cè)試用的接收信息Activity:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import android.app.Activity; 
 
import android.content.Intent; 
 
import android.os.Bundle; 
import android.os.Parcelable; 
 
public class Test extends Activity { 
   
  @Override
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Intent i = getIntent(); 
    Person p = i.getParcelableExtra("yes"); 
    System.out.println("---->"+p.name); 
    System.out.println("---->"+p.map.size()); 
  
}

發(fā)送的Activity:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.HashMap; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
 
public class TestNew extends Activity { 
   
  @Override
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Intent intent = new Intent(); 
    Person p = new Person(); 
    p.map = new HashMap<String,String>(); 
    p.map.put("yes", "ido"); 
    p.name="ok"
    intent.putExtra("yes", p); 
    intent.setClass(this, Test.class); 
    startActivity(intent); 
  
}

Parcelable的實(shí)現(xiàn)類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.HashMap; 
import android.os.Parcel; 
import android.os.Parcelable; 
 
public class Person implements Parcelable { 
 
  public HashMap<String,String> map = new HashMap<String,String> (); 
    
  public String name ; 
  @Override
  public int describeContents() { 
    return 0
  
  @Override
  public void writeToParcel(Parcel dest, int flags) { 
 
    dest.writeMap(map); 
    dest.writeString(name); 
  
  public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() { 
//重寫Creator
 
    @Override
    public Person createFromParcel(Parcel source) { 
      Person p = new Person(); 
      p.map=source.readHashMap(HashMap.class.getClassLoader()); 
      p.name=source.readString(); 
      return p; 
    
    @Override
    public Person[] newArray(int size) { 
      // TODO Auto-generated method stub 
      return null
    
  }; 
 
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色亚洲色图 | 久久伊人中文字幕有码 | 娇小老少配xxxxx性视频 | 男人天堂网址 | 亚洲国产成人精品无码区99 | 久久综合狠狠综合狠狠 | 精品视频手机在线观看免费 | 亚洲色图15p | 无颜之月全集免费观看 | 91视频国产精品 | 亚洲精品一区二区久久这里 | 国产成人亚洲综合91精品555 | 欧美日韩一区二区中文字幕视频 | 九九热在线观看视频 | 娇妻与公陈峰姚瑶小说在线阅读 | tube69中国露脸 | 热99精品在线 | 国产高清免费在线 | 日本免费高清在线观看播放 | 99精品国产高清一区二区三区香蕉 | 精品久久久久久影院免费 | 国产精品露脸国语对白手机视频 | 关晓彤被调教出奶水的视频 | 国产视频一区二 | 亚洲视频免费 | 1024免费永久福利视频 | 亚洲精品久久久久福利网站 | 亚洲国产在线午夜视频无 | 午夜一级 | 日本破处| 亚洲高清成人 | 女人爽到喷水的视频免费 | 亚洲一欧洲中文字幕在线 | 欧美va免费精品高清在线 | 天天综合网天天做天天受 | 日本高清在线精品一区二区三区 | 青青视频国产依人在线 | 乌克兰xxxxx| 日本中文字幕高清 | 亚洲国产成人久久综合一 | 亚洲小视频在线 |