传递简单数据


//发送方
i.putExtra("data",t.getText().toString()); //接收方
Intent i = getIntent();
m = (EditText)findViewById(R.id.et2);
m.setText(i.getStringExtra("data"));

数据回传

//接收方
public void sendBack(View view){ Intent i = new Intent();//不仅可以跳转activity,还可以作为数据的载体传递)
i.putExtra("data",m.getText().toString());
setResult(1,i);//设置responseCode为1
finish();//结束当前activity } //发送方
startActivityForResult(i,0);//设置requestCode为0

/***重写方法onActivityResult(),通过requestCode和resultCode来识别本次StartActivity的意义***/

protected void onActivityResult(int requestCode, int resultCode, Intent data){

    super.onActivityResult(requestCode,resultCode,data);

    n.setText("另外一个activity返回的数据是:"+ data.getStringExtra("data"));
}

使用bundle传递数据包

//发送方
Bundle b = new Bundle();
b.putString("Name","lin");
b.putInt("Age",17);
b.putInt("Classid",3);
i.putExtras(b); //接收方
Bundle b = i.getExtras();
m.setText(String.format("Name:%s,Age:%d,Classid:%d",b.getString("Name"),b.getInt("Age"),b.getInt("Classid")));

传递值对象

传递值对象有两种方式(serializable和parcelable)

①serializable (序列化过程由系统完成,速度较慢)

//新建User类 

 public class User implements Serializable {}

//发送方

i.putExtra("user",new User(2,"duolaAmeng"));

//接收方

User u = (User) i.getSerializableExtra("user");
m.setText(String.format("user info(name=%s,age=%d)",u.getName(),u.getAge()));

②parcelable (专门针对android平台,没有采用系统的序列化机制,速度较快)

//新建User类

public class User implements Parcelable {
@Override
public int describeContents() {
return 0;
} @Override
public void writeToParcel(Parcel parcel, int i) { parcel.writeString(getName());
parcel.writeInt(getAge()); } public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel parcel) {
return new User(parcel.readInt(),parcel.readString());
} @Override
public User[] newArray(int i) {
return new User[i];
}
};

//接收方

User u = (User) i.getParcelableExtra("user");
m.setText(String.format("user info(age=%d,name=%s)",u.getAge(),u.getName()));

BUT: parcelable方法可运行成功,但结果不对,"name"传null,“age"传10,后续跟进。

注:①什么是序列化?什么时候需要使用序列化?

  ②Creator<User> ?

												

Android-2的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  2. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  3. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  4. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  5. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  8. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  9. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  10. Android UI体验之全屏沉浸式透明状态栏效果

    前言: Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体 ...

随机推荐

  1. 渐变颜色的进度条WGradientProgress-备用

    今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有“B格”.它拥有渐变的颜色,而且这种颜色是动态移动的, ...

  2. cf C. Dima and Salad

    http://codeforces.com/contest/366/problem/C 转化为背包问题,可以将a[i]-b[i]*k看成重量,a[i]为价值: 因为a[i]-b[i]*k可以为负数,所 ...

  3. C# 进程间通信(共享内存)

    原文:C# 进程间通信(共享内存) 进程间通信的方式有很多,常用的方式有: 1.共享内存(内存映射文件,共享内存DLL). 2.命名管道和匿名管道. 3.发送消息 本文是记录共享内存的方式进行进程间通 ...

  4. Flash AIR 保存与读取

    package { import flash.display.Sprite; import flash.net.URLLoader; import flash.display.Loader; impo ...

  5. 安卓,通过本地应用分享到微信、facebook等

    别的不说了,直接上代码. 支持分享到微信.微博.facebook.twitter package com.example.shareSample; import java.util.List; imp ...

  6. VC青睐服装订制网站 市场规模超3000亿美元 - 找VC - 创业邦

    VC青睐服装订制网站 市场规模超3000亿美元 - 找VC - 创业邦 VC青睐服装订制网站 市场规模超3000亿美元

  7. Xcode7中你一定要知道的炸裂调试神技(转)

    1.Address Sanitizer: 妈妈再也不用担心 EXC_BAD_ACCESS? EXC_BAD_ACCESS一直是很多开发者的噩梦,因为这个错误很不直观,出现后往往要花很长时间才能定位到错 ...

  8. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...

  9. Netty实例-简单的服务端-client实现,凝视具体

           书籍推荐:                                       实例代码 :http://download.csdn.net/detail/jiangtao_st ...

  10. Android-67-Tomcat启动出错:Server Tomcat v7.0 Server at localhost failed to start.

     错误:Server Tomcat v7.0 Server at localhost failed to start.如图: 唉! ! !!图片上传不上去,悲哀啊!..仅仅能先写着错误提示语吧~~ ...