亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2014年08月07日 15:56:09   投稿:shichen2014  
這篇文章主要介紹了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,長度為size的數(shù)組,僅一句話(return new T[size])即可。估計(jì)本方法是供外部類反序列化本類數(shù)組使用。

測試用的接收信息Activity:

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:

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)類:

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;  
    }  
  };  
 
} 

相關(guān)文章

  • Java設(shè)計(jì)模式之工廠方法模式實(shí)例簡析

    Java設(shè)計(jì)模式之工廠方法模式實(shí)例簡析

    這篇文章主要介紹了Java設(shè)計(jì)模式之工廠方法模式,較為詳細(xì)的分析了Java工廠模式的功能、定義并給出了實(shí)例代碼加以總結(jié)分析,需要的朋友可以參考下
    2015-11-11
  • Java創(chuàng)建多線程服務(wù)器流程

    Java創(chuàng)建多線程服務(wù)器流程

    這篇文章主要介紹了Java創(chuàng)建多線程服務(wù)器流程,以下實(shí)例演示了如何使用Socket類的accept()方法和ServerSocket類的MultiThreadServer(socketname)方法來實(shí)現(xiàn)多線程服務(wù)器程序
    2023-05-05
  • java線程本地變量ThreadLocal詳解

    java線程本地變量ThreadLocal詳解

    ThreadLocal則為每一個(gè)線程提供了一個(gè)變量副本,從而隔離了多個(gè)線程訪問數(shù)據(jù)的沖突,ThreadLocal提供了線程安全的對(duì)象封裝,下面我們就來詳細(xì)了解一下吧
    2019-06-06
  • Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    本文主要介紹了Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • jvm調(diào)優(yōu)的幾種場景(小結(jié))

    jvm調(diào)優(yōu)的幾種場景(小結(jié))

    本文主要介紹了jvm調(diào)優(yōu)的幾種場景,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java泛型之上界下界通配符詳解

    Java泛型之上界下界通配符詳解

    這篇文章主要介紹了Java泛型之上界下界通配符詳解,學(xué)習(xí)使用泛型編程時(shí),更令人困惑的一個(gè)方面是確定何時(shí)使用上限有界通配符以及何時(shí)使用下限有界通配符。本文提供一些設(shè)計(jì)代碼時(shí)要遵循的一些準(zhǔn)則。,需要的朋友可以參考下
    2019-06-06
  • SpringBoot創(chuàng)建JSP登錄頁面功能實(shí)例代碼

    SpringBoot創(chuàng)建JSP登錄頁面功能實(shí)例代碼

    這篇文章主要介紹了SpringBoot創(chuàng)建JSP登錄頁面功能實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    這篇文章主要介紹了Spring之ShutDown?Hook死鎖現(xiàn)象解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解SpringBoot中@PostMapping注解的用法

    詳解SpringBoot中@PostMapping注解的用法

    在SpringBoot中,我們經(jīng)常需要編寫RESTful Web服務(wù),以便于客戶端與服務(wù)器之間的通信,@PostMapping注解可以讓我們更方便地編寫POST請(qǐng)求處理方法,在本文中,我們將介紹@PostMapping注解的作用、原理,以及如何在SpringBoot應(yīng)用程序中使用它
    2023-06-06
  • SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐

    SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot結(jié)合mybatis-plus實(shí)現(xiàn)分頁的項(xiàng)目實(shí)踐,主要基于MyBatis-Plus 自帶的分頁插件 PaginationInterceptor,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評(píng)論