zoukankan      html  css  js  c++  java
  • Android程序中Acticity间传递数据

      在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的。我花费了一点时间来总结Acitivity之间的数据传递,记录下来。

      1、简单传递键值对

      这种传递方式非常简单,只需要在构造Intent加入相应的键值对。

      在ActivityA中,调用Intent的代码如下:

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

      在ActivityB中,可以直接更加相应的键值对读取即可。

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

      2、传递对象

      在不同的Acitivity之间传递对象,也是一种非常常见的做法。之前没有仔细阅读Android开发文档,所以之前我在写Android代码的时候,不同Acitivity之间对象传递是通过静态类来实现的。起始在Activity间传递对象也非常简单,与上面的传递键值对方法类似。

      首先是对需要传递的类加上序列化接口:

     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的代码如下:

    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();
  • 相关阅读:
    【题解】Killer Names($O(nlog n)$做法)
    【瞎讲】类欧几里得入土教程
    【题解】SDOI2010所驼门王的宝藏(强连通分量+优化建图)
    【题解】ARC101F Robots and Exits(DP转格路+树状数组优化DP)
    【题解】LOJ6060 Set(线性基)
    【题解】CF1056F Write the Contest(三分+贪心+DP)
    【题解】多少个$1$(exBSGS)
    【题解】幼儿园篮球题(范德蒙德卷积+斯特林+NTT)
    【题解】P1373 小a和uim之大逃离
    【题解】地精部落(DP)
  • 原文地址:https://www.cnblogs.com/finlay/p/3878414.html
Copyright © 2011-2022 走看看