Android程序中Acticity間傳遞數據

  在Android開發過程當中,在不一樣的Acitivity之間傳遞數據的狀況是很是常見的。我花費了一點時間來總結Acitivity之間的數據傳遞,記錄下來。java

  一、簡單傳遞鍵值對ide

  這種傳遞方式很是簡單,只須要在構造Intent加入相應的鍵值對。this

  在ActivityA中,調用Intent的代碼以下:spa

1 Intent i = new Intent(ActivityA.this,ActivityB.class);
2 i.putExtra("name", "Finlay Liu");
3 i.putExtra("age", "19");
5 startActivity(i);

  在ActivityB中,能夠直接更加相應的鍵值對讀取便可。code

1 String s = getIntent().getStringExtra("name") + " : " + getIntent().getStringExtra("age");
4 Toast.makeText(this, s, Toast.LENGTH_SHORT).show();

  二、傳遞對象對象

  在不一樣的Acitivity之間傳遞對象,也是一種很是常見的作法。以前沒有仔細閱讀Android開發文檔,因此以前我在寫Android代碼的時候,不一樣Acitivity之間對象傳遞是經過靜態類來實現的。起始在Activity間傳遞對象也很是簡單,與上面的傳遞鍵值對方法相似。
blog

  首先是對須要傳遞的類加上序列化接口:接口

 

 1 package com.finlayliu.passingobject;
 2 
 3 import java.io.Serializable;
 4 
 5 public class Person implements Serializable {
 6 
 7     private static final long serialVersionUID = 1L;
 8 
 9     public int getId() {
10         return id;
11     }
12 
13     public void setId(int id) {
14         this.id = id;
15     }
16 
17     public String getName() {
18         return name;
19     }
20 
21     public void setName(String name) {
22         this.name = name;
23     }
24 
25     public int getAge() {
26         return age;
27     }
28 
29     public void setAge(short age) {
30         this.age = age;
31     }
32 
33     private int id;
34     private String name;
35     private int age;
36 
37     public Person() {
38 
39     }
40 
41     public Person(int id, String name, int age) {
42         this.id = id;
43         this.name = name;
44         this.age = age;
45 
46     }
47 
48     public String toString() {
49         return id + ":" + this.name + ":" + age;
50     }
51 }
Person 類

 

  在ActivityA中,調用Intent的代碼以下:ci

1 Intent i = new Intent(MainActivity.this, OtherActivity.class);
2 Person p = new Person(1, "Finaly Liu", 19);
3 i.putExtra("Person", p);
4 
5 startActivity(i);

  在ActivityB中,讀取相應的對象代碼以下:開發

1 Person p = (Person) getIntent().getSerializableExtra("Person");
2 Toast.makeText(getApplicationContext(), p.toString(), Toast.LENGTH_LONG).show();
相關文章
相關標籤/搜索