zoukankan      html  css  js  c++  java
  • Android 开发中使用Intent传递数据的方法

    Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[],还有采用实现Serializable、Parcelable接口的类对象传递数据的两种方法:一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object)

    例如:

    1. import android.os.Parcel;    
    2. import android.os.Parcelable;    
    3. public class Book implements Parcelable {    
    4.     private String bookName;    
    5.     private String author;    
    6.     private int publishTime;    
    7.         
    8.     public String getBookName() {    
    9.         return bookName;    
    10.     }    
    11.     public void setBookName(String bookName) {    
    12.         this.bookName = bookName;    
    13.     }    
    14.     public String getAuthor() {    
    15.         return author;    
    16.     }    
    17.     public void setAuthor(String author) {    
    18.         this.author = author;    
    19.     }    
    20.     public int getPublishTime() {    
    21.         return publishTime;    
    22.     }    
    23.     public void setPublishTime(int publishTime) {    
    24.         this.publishTime = publishTime;    
    25.     }    
    26.         
    27.     public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() {    
    28.         public Book createFromParcel(Parcel source) {    
    29.             Book mBook = new Book();    
    30.             mBook.bookName = source.readString();    
    31.             mBook.author = source.readString();    
    32.             mBook.publishTime = source.readInt();    
    33.             return mBook;    
    34.         }    
    35.         public Book[] newArray(int size) {    
    36.             return new Book[size];    
    37.         }    
    38.     };    
    39.         
    40.     public int describeContents() {    
    41.         return 0;    
    42.     }    
    43.     public void writeToParcel(Parcel parcel, int flags) {    
    44.         parcel.writeString(bookName);    
    45.         parcel.writeString(author);    
    46.         parcel.writeInt(publishTime);    
    47.     }    
    48. }   

    实现Serializable接口:

    1. import java.io.Serializable;    
    2. public class Person implements Serializable {    
    3.     private static final long serialVersionUID = -7060210544600464481L;     
    4.     private String name;    
    5.     private int age;    
    6.     public String getName() {    
    7.         return name;    
    8.     }    
    9.     public void setName(String name) {    
    10.         this.name = name;    
    11.     }    
    12.     public int getAge() {    
    13.         return age;    
    14.     }    
    15.     public void setAge(int age) {    
    16.         this.age = age;    
    17.     }    
    18.         
    19. }   

    这样在Activity中就可编写传递数据代码:

    1. Intent mIntent = new Intent(this, 地址Activity.class);    
    2. Bundle mBundle = new Bundle();    
    3. //采用parcelable传输数据  
    4. mBundle.putParcelable("data", mBook);    
    5. //采用serializable传输数据  
    6. mBundle.putSerializable("data", items);  
    7. mIntent.putExtras(mBundle);    
    8.         
    9. startActivity(mIntent);  

    接受数据可以采用:

    1. Intent intent = getIntent();  
    2. ArrayList<Map<String, String>> items = (ArrayList<Map<String, String>>)intent.getExtras().get("data");  
  • 相关阅读:
    自动档汽车档位介绍和驾驶知识与技巧
    4岁儿童发育指标与食谱指导
    0130 Lesson 13:Talking About Occupations 谈论职业
    [ python ] 列表和字符串的查找功能
    [ python ] 字典类型的一些注意问题
    [ python ] input()和raw_input()
    [ js ] 可否用多线程的思路,解决大数量数据的性能问题?
    python中对文件、文件夹的操作
    [ js ] 可否用多线程的思路,解决大数量数据的性能问题?
    [ python ] 字典类型的一些注意问题
  • 原文地址:https://www.cnblogs.com/chengzhengfu/p/4582022.html
Copyright © 2011-2022 走看看