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

服務(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
    
  }; 
 
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 全日爱韩国视频在线观看 | 亚洲视频免 | 成人亚洲欧美日韩中文字幕 | 婷婷色天使在线视频观看 | 厨房play黄瓜进去小说h | 69罗莉视频在线观看 | 惊弦45集免费看 | 成年人免费在线视频 | 激情综 | 国产午夜一区二区在线观看 | 国产青色 | 9总探花新品牛仔背带裤 | 亚洲系列在线 | 免费观看俄罗斯特黄特色 | 波多野结衣一区免费作品 | 免费网站看v片在线香蕉 | 亚洲人成绝费网站色ww | 高h巨肉play 高h短篇辣肉各种姿势bl | 国产成人影院 | 国产视频福利 | 成人精品网 | 饭冈加奈子黑人解禁在线播放 | voyeur多毛厕所 | 亚洲精品视频专区 | 久青草国产97香蕉在线视频 | 好爽好深好猛好舒服视频上 | 1024免费观看完整版在线播放 | 我和寂寞孕妇的性事 | 福利片免费一区二区三区 | 动漫美女被羞羞产奶 | 性欧美f| 国产真实乱子伦xxxxchina | 国产区成人精品视频 | 精品国产成人高清在线 | 扒开放荡老师裙子猛烈的进入 | 国产在线成人a | 国产成人免费高清激情明星 | 日韩视频在线免费 | 热久久免费 | 九九99九九精彩网站 | 啊啊啊好大视频 |