zoukankan      html  css  js  c++  java
  • Android_Intent_note

    Activity间传递参数的方法
    方法1. 通过putExtra()传递基本数据类型
    方法2. 通过putExtras()传递Bundle数据类型
    方法3. 通过Application读写全局变量

    方法4. 把基本的数据类型封装到一个对象中,然后通过intent传递该对象
    需要考虑对Person对象进行序列化

    Java中的序列化使用Serializable
    Android中的序列化使用Parcelable

    用法如下:
    1. 需要对可序列化的类,实现Parcelable接口
    2. 实现Parcelable接口中的抽象方法
    2.1 describeContents() 该方法直接返回0
    2.2 writeToParcel(Parcel out, int flags) 把需要序列化的参数写入out中 比如:
    out.writeString(name);
    out.writeInt(age);
    out.writeDouble(weight);
    3. 定义一个静态的属性CREATOR 是Parcelable.Creator的对象
    在该匿名内部类中,实现Parcelable.Creator中的两个方法(泛型参数为类名)
    方法1.
    createFromParcel(Parcel in) 对in进行反序列化(需要通过Person的构造器实现)
    方法2.
    newArray(Parcel in) 反序列化多个元素时使用

    4. 定义私有的构造器 从in中反序列对应的参数(反序列化参数的顺序必须与序列化参数的顺序保持一致)


    当SecondActivity需要回传参数时:
    1. MainActivity启动SecondActivity时需要调用startActivityForResult()
    并定义请求码
    2. SecondActivity在合适的使用调用setResult()设置返回码和返回的参数
    然后调用finish()结束当前Activity
    3. MainActivity需要重写onActivityResult()捕获SecondActivity返回的结果

    常用的返回码为:
    RESULT_OK 成功
    RESULT_CANCEL 失败
    RESULT_FIRST_USER 用户自定义的返回码
    RESULT_FIRST_USER + 1
    RESULT_FIRST_USER + 2
    ……

  • 相关阅读:
    ACE反应器(Reactor)模式(3)
    ACE反应器(Reactor)模式(2)
    ACE反应器(Reactor)模式(1)
    ACE主动对象模式(2)
    ACE主动对象模式(1)
    ACE中UDP通信
    ACE中TCP通信
    从golang-gin-realworld-example-app项目学写httpapi (六)
    从golang-gin-realworld-example-app项目学写httpapi (五)
    从golang-gin-realworld-example-app项目学写httpapi (四)
  • 原文地址:https://www.cnblogs.com/fangg/p/5566234.html
Copyright © 2011-2022 走看看