1、传递Serializable方式类对象

首先创建一个序列化类:User

import java.io.Serializable;

public class User implements Serializable {
  private int ID;
private String UserName;
private String PWD;
public final void setID(int value)
{
ID = value;
}
public final int getID()
{
return ID;
}
public final void setUserName(String value)
{
UserName = value;
}
public final String getUserName()
{
return UserName;
}
public final void setPWD(String value)
{
PWD = value;
} public final String getPWD()
{
return PWD;
} }

登录窗体登录后传递内容

Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("user", user);
intent.putExtras(bundle);
this.startActivity(intent);

接收端

Intent intent = this.getIntent();
user=(User)intent.getSerializableExtra("user");

以上就可以实现对象的传递。

补充:

如果传递的是List<Object>,可以把list强转成Serializable类型,而且object类型也必须实现了Serializable接口

Intent.putExtras(key, (Serializable)list)  

接收

(List<YourObject>)getIntent().getSerializable(key)

2、传递数据值

(1)用于Activity之间的数据传递

在起始Activity中,发送数据:

Intent intent = new Intent();
//设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
intent.setClass(ThisActivity.this,TargetActivity.class);
//绑定数据
intent.putExtra("username",username);//也可以绑定数组
intent.putExtra("userpass",userpass);
//打开目标Activity
startActivity(intent);

在目标Activity中,接收数据:

//获得意图
Intent intent = getIntent();
//读取数据
String name = intent.getStringExtra("username");
String pass = intent.getStringExtra("userpass);

(2)也适用Bundle(捆)

在起始Activity中,发送数据:

Intent intent = new Intent();
//设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
intent.setClass(ThisActivity.this,TargetActivity.class);
//一次绑定多个数据
Bundle bundle = new Bundle();
bundle.putString("username",username);
bundle.putString("userpass",userpass);
intent.putExtras(bundle);
//打开目标Activity
startActivity(intent);

在目标Activity中,接收数据:

//获得意图
Intent intent = getIntent();
//读取数据
Bundle bundle = intent.getExtras();
String name = bundle.getString("username");
String pass = bundle.getString("userpass");

3、当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用startActivityForResult(Intent intent, int requestCode)方法。

在起始Activity中,发送数据:

Intent intent = new Intent();
//设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
intent.setClass(ThisActivity.this,TargetActivity.class);
//绑定数据
intent.putExtra("username",username);//也可以绑定数组
intent.putExtra("userpass",userpass);
//打开目标Activity
startActivityForResult(intent,1);
//需要重写onActivityResult方法
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode,resultCode,intent);
//判断结果码是否与回传的结果码相同
if(resultCode == 1)
      {
    //获取回传数据
  String name = intent.getStringExtra("name");
  String pass = intent.getStringExtra("pass);
   //对数据进行操作
......
    }
}

在目标Activity中,接收数据:

//获得意图
Intent intent = getIntent();
//读取数据
String name = intent.getStringExtra("username");
String pass = intent.getStringExtra("userpass);
//从EditText中获取新的数据给name和pass
name = editText1.getText().toString();
pass = editText2.getText().toString()
//数据发生改变,需要把改变后的值传递回原来的Activity
intent.putExtra("name",name);
intent.putExtra("pass",pass);
//setResult(int resultCode,Intent intent)方法
setResult(1,intent);
//销毁此Activity,摧毁此Activity后将自动回到上一个Activity
finish();

Android通过Intent传递对象的更多相关文章

  1. android#使用Intent传递对象

    参考自<第一行代码>——郭霖 Intent的用法相信你已经比较熟悉了,我们可以借助它来启动活动.发送广播.启动服务等.在进行上述操作的时候,我们还可以在Intent中添加一些附加数据,以达 ...

  2. Android中Intent传递对象的两种方法(Serializable,Parcelable)

    今天要给大家讲一下Android中 Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是 Bundle.putP ...

  3. [转]Android中Intent传递对象的两种方法(Serializable,Parcelable)

    http://blog.csdn.net/xyz_lmn/article/details/5908355 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种 ...

  4. Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!

    [转][原文] 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object); ...

  5. 【转】Android中intent传递对象和Bundle的用法

    原文网址:http://blog.csdn.net/lixiang0522/article/details/8642202 android中的组件间传递的对象一般实现Parcelable接口,当然也可 ...

  6. Intent传递对象的几种方式

    原创文章.转载请注明 http://blog.csdn.net/leejizhou/article/details/51105060 李济洲的博客 Intent的使用方法相信你已经比較熟悉了,Inte ...

  7. Android 通过 Intent 传递类对象或list对象

    (转:http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html) Android中Intent传递类对象提供了两种方式一种是 通过实现 ...

  8. Android 全局获取 Context 与使用 Intent 传递对象

    =====================全局获取 Context======================== Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活 ...

  9. Android 通过 Intent 传递类对象

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...

随机推荐

  1. POJ 1095

    #include <iostream> #define MAXN 20 using namespace std; __int64 cat[MAXN]; int sum; void give ...

  2. Maven私服架设(nexus / on windows)

    Maven私服可以用多个不同的产品可供选择,下面我们演示使用最为广泛的nexus来架设maven本地私服   Nexus的下载及安装请见官方下载页: http://www.sonatype.org/n ...

  3. Kafka消息队列

    转自:http://blog.csdn.net/yfkiss/article/details/17348693 代码案例 http://blog.csdn.net/ganglia/article/de ...

  4. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...

  5. (转)mysql原生在线ddl和pt-osc原理解析

    原文:http://blog.csdn.net/zengxuewen2045/article/details/52017247 https://github.com/mysql-inception/i ...

  6. Windows10下简单搭建zookeeper

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6798669.html 1 简介 zookeeper是Apache的一个开源项目,致力于开发和维护一个开源的服务器 ...

  7. Mac 下安装node.js(转载)

    原文地址:http://blog.csdn.net/u011619283/article/details/52368759 Node.js 简介 Node.js 是一个用Chrome's V8 Jav ...

  8. Vue把父组件的方法传递给子组件调用(评论列表例子)

    Vue把父组件的方法传递给子组件调用(评论列表例子) 效果展示: 相关Html: <!DOCTYPE html> <html lang="en"> < ...

  9. ActiveRecord::Fixture::FormatError: ActiveRecord::Fixture::FormatError

    环境:window 7+ruby2.33+rails5.0.. 该提示的意思是固件格式错误: 但是又没有提示是哪一行 非常蛋疼,我照成的原因居然是没有对齐,请看:(下面的activated_at没有和 ...

  10. 如何虚拟机里安装Win10操作系统

    不多说,直接上干货! Windows Server 2003.2008.2012系统的安装 推荐网址:打开MSDN网站(http://msdn.itellyou.cn ) 关于给电脑换系统,很多人会花 ...