欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中Parcelable的作用實例解析

 更新時間:2014年08月07日 15:56:09   投稿:shichen2014  
這篇文章主要介紹了Android中Parcelable的作用,對于Android初學者有一定的參考學習價值,需要的朋友可以參考下

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

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

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

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

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

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

測試用的接收信息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的實現類:

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

相關文章

  • Java設計模式之工廠方法模式實例簡析

    Java設計模式之工廠方法模式實例簡析

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

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

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

    java線程本地變量ThreadLocal詳解

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

    Spring MVC--攔截器實現和用戶登陸例子

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

    jvm調優(yōu)的幾種場景(小結)

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

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

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

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

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

    Spring之ShutDown?Hook死鎖現象解讀

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

    詳解SpringBoot中@PostMapping注解的用法

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

    SpringBoot結合mybatis-plus實現分頁的項目實踐

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

最新評論