文档章节

Android中Intent传递对象

夕阳桥断
 夕阳桥断
发布于 2015/10/22 22:25
字数 513
阅读 2
收藏 0
点赞 0
评论 0

直接代码不罗嗦

传递数据


public class MainActivity extends Activity {

    private EditText username, password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        username = (EditText) this.findViewById(R.id.username);
        password = (EditText) this.findViewById(R.id.password);

    }

    //ooclick 方法
    public void login(View view) {
        Intent intent = new Intent(this, Main2Activity.class);
        String name = username.getText().toString();
        String pass = password.getText().toString();
        // intent.putExtra("username", name);
        // intent.putExtra("password", pass);

        // Bundle 数据传递
        Bundle bundle = new Bundle();// 其实是对hashmap的封装
        bundle.putString("username", name);
        bundle.putString("password", pass);
        intent.putExtras(bundle);

        // 实现Parcel接口传递 对象
        Person person = new Person(100, "张三", 26);
        intent.putExtra("Person", person);

        // 序列化传递对象

        User user = new User(101, "小杨同学", 25);

        intent.putExtra("User", user);

        startActivity(intent);

    }
}

接收数据

public class Main2Activity extends Activity {
    private TextView message;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity2_main);
        super.onCreate(savedInstanceState);
        message = (TextView) this.findViewById(R.id.message);
        String username = "";
        String password = "";
        Intent intent = getIntent();
        // String username = intent.getStringExtra("username");
        // String password = intent.getStringExtra("password");

        // 获取Bundle 数据
        Bundle bundle = intent.getExtras();
        username = bundle.getString("username");
        password = bundle.getString("password");
        
        Person person=intent.getParcelableExtra("Person");
        
        User user=(User) intent.getSerializableExtra("User");
        
        message.setText(
                "用户名:" + username + "==密码:" + password 
                + "\n Person对象" +person.toString() 
                +"\n User 对象" +user.toString());

        

    }
}







1、实现Parcelable接口

public class Person implements Parcelable {
    private int id;
    private String name;
    private int age;


    @Override
    public int describeContents() {

        return 0;
    }

    /**
     * 把数据写入到Parcel对象
     */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(id);
        dest.writeString(name);
        dest.writeInt(age);

    }

    public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
        // 从Parcel对象里读取数据
        public Person createFromParcel(Parcel in) {
            return new Person(in);
        }

        public Person[] newArray(int size) {
            return new Person[size];
        }
    };

    /**
     * 读取的数据类型要和写入的数据类型相对应
     * 
     * @param in
     */
    private Person(Parcel in) {
        id = in.readInt();
        name = in.readString();
        age = in.readInt();
    }

    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Person(){}

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}

2、实现Serializable接口

public class User implements Serializable {

    private static final long serialVersionUID = 5232357154831253356L;
    private int id;
    private String name;
    private int age;
    
    
    
    
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    public User(int id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }


© 著作权归作者所有

共有 人打赏支持
夕阳桥断
粉丝 0
博文 8
码字总数 1799
作品 0
海淀
Android中Intent组件详解

Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件。Intent 本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙述其所期望的服务或动...

Remix_jx
2014/10/16
0
0
Android零基础入门第81节:Activity数据传递

在Android开发中,经常要在Activity之间传递数据。前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递。 一、简介 通过前面的学习知道,Intent可以用来开启Activit...

鑫鱻
2017/10/23
0
0
界面开发组件Activity详解

Activity是Android中最核心的应用程序组件,是用于控制显示界面的组件。一个Activity就是一个类,该类继承了android.app.Activity,并需要重写onCreate方法,同时在AndroidManifest.xml中进行...

jz116
2012/12/16
0
1
Intent对象初步——Mars Android开发视频之第二季第四集(重)

Intent对象的基本概念 Intent是安卓应用程序组件之一 Intent对象在安卓系统当中表示一种意图 Intent当中最重要的内容是action与data 2. Intent对象的基本使用方法 2.1 从一个Activity跳转到另...

周田
2015/08/23
0
0
Pro Android学习笔记(十一):了解Intent(中)

Intent的构成 Intent可以带有action,data(由URI表达),extra data(key/value map,键值对),指定的类名(成为component name)。一个intent至少携带上述的一个内容。 Action。Action名,...

simpower
2014/10/04
0
0
Android Intent 深入理解

什么是Intent Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内...

learn_more
2015/02/04
0
0
糊里糊涂学Android(1)——Activity之间的数据传递

在Activity之间传递数据,主要的方法有四种: 利用静态字段传递; 利用Intent传递; 利用ClipboardManager传递; 利用全局变量传递。 下面就一一道来,首先呢,创建一个Android Application...

笑缘心归
2014/03/15
0
0
Android零基础入门第78节:四大组件的纽带——Intent

前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity。...

鑫鱻
2017/10/18
0
0
Android Application的作用

学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。 What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当...

假装是大神
2012/11/22
0
2
Android Application的作用

学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。 What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当...

程序袁_绪龙
2014/10/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mybaitis 通过Mapping 实现多表查询

1.实体类 1.1 用于做多表查询的类 public class CustomerCard { private Integer id;//主键 private String cardNumber; private Integer customerId;//用户id private String customerName;......

kuchawyz
9分钟前
0
0
Java语言学习(八):集合类框架

Java中提供了各种数据集合类,这些类主要用于保存复杂结构的数据。下面将介绍常用的几种集合类的用法。 ArrayList集合可以看做一个动态的数组,比普通数组更加灵活,更适合保存未知数量的数据...

海岸线的曙光
11分钟前
0
0
SpringBoot下Redis相关配置是如何被初始化的

参考网页 SpringBoot集成Redis的原理 https://blog.csdn.net/hry2015/article/details/74276423 https://blog.csdn.net/hry2015/article/details/75451705 application.yml配置文件中的属性是......

karma123
11分钟前
1
0
数据库事务的四大特性以及事务的隔离级别

本篇讲述数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是...

Java大蜗牛
19分钟前
0
0
Spring Boot 整合 MyBatis/通用Mapper/PageHelper分页插件

整合MyBatis 整合通用Mapper 1. POM依赖配置 <properties><mapper.starter.version>2.0.3-beta1</mapper.starter.version></properties><!-- 通用Mapper --><dependency><groupId>t......

OSC_fly
27分钟前
0
0
CentOS7 双网卡绑定

环境 操作系统 CentOS7.5,禁用 NetworkManager 服务 网卡 eth0 网卡 eth1 绑定网卡 bond0 网卡 eth0 配置 修改 /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=EthernetBOOTPROTO=noneD......

Colben
29分钟前
0
0
zk实战--rpc框架集群化

在看此篇内容时需要浏览下面内容 netty实战--手写rpc框架 前文功能简介以及功能扩充 利用netty来实现一个点对点的rpc调用。客户端和服务端都是靠手写地址进行socket同学的,无法1对多,也无法...

xpbob
45分钟前
12
0
springboot 发送邮件

获取授权码 添加配置 # 账号和密码spring.mail.username=aaa@qq.comspring.mail.password=bbb# 服务器地址spring.mail.host=smtp.qq.comspring.mail.properties.mail.smtp.ssl.en...

阿豪boy
45分钟前
0
0
如何使用GNU Ring?

文章名:如何使用GNU Ring? 作者:冰焰火灵X 1079092922@qq.com 文章许可:CC BY-SA 4.0 ##1. 安装 下载GNU Ring 点击左边选择你的系统版本(这里以 GNU/Linux 为例,我使用的是Mint 18.3)...

ICE冰焰火灵X
48分钟前
4
0
深入理解springMVC

什么是spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而...

Java填坑之路
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部