android – 如何使用Intent.putExtra和Parcel将对象从一个Activity发送到另一个Activity?

android – 如何使用Intent.putExtra和Parcel将对象从一个Activity发送到另一个Activity?,第1张

概述使用以下URL How to send an object from one Android Activity to another using Intents? 我已经做了如下样本申请 Scrollview1.java import android.app.Activity;import android.content.Intent;import android.os.Bundle;imp 使用以下URL
How to send an object from one Android Activity to another using Intents?

我已经做了如下样本申请

ScrollvIEw1.java

import androID.app.Activity;import androID.content.Intent;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.Widget.button;public class ScrollvIEw1 extends Activity {    static int i;    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        button b = (button)findVIEwByID(R.ID.button01);        b.setonClickListener(new OnClickListener(){            public voID onClick(VIEw v) {                Intent i = new Intent(ScrollvIEw1.this,Result.class);                name n = new name();                n.setI(20);                n.setS1("Hello");                n.setS2("World");                i.putExtra("name",n);                startActivity(i);            }                   });    }}

//name.java

import androID.os.Parcel;import androID.os.Parcelable;public class name implements Parcelable{    int i;    String s1;    String s2;    public name(){    }    private name(Parcel in){        in.readInt();        in.readString();    }    public int getI() {        return i;    }    public voID setI(int i) {        this.i = i;    }    public String getS1() {        return s1;    }    public voID setS1(String s) {        this.s1 = s;    }    public String getS2() {        return s2;    }    public voID setS2(String s) {        this.s2 = s;    }    public int describeContents() {        return 0;    }    public voID writetoParcel(Parcel dest,int flags) {             dest.writeInt(i);        dest.writeString(s1);        dest.writeString(s2);    }      public static final name.Creator<name> CREATOR = new name.Creator<name>() {            public name createFromParcel(Parcel in) {                return new name(in);            }            public name[] newArray(int size) {                return new name[size];            }        };  }

//Result.java

import androID.app.Activity;import androID.os.Bundle;public class Result extends Activity{    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);      name a = (name)getIntent().getParcelableExtra("name");      System.out.println("Int : "+a.getI());      System.out.println("String : "+a.getS1());      System.out.println("String : "+a.getS2());    }}

但是Result类I变为null.怎么了?

解决方法 在:

private name(Parcel in){    in.readInt();    in.readString();}

您正在从包中读取,但实际上并未将信息分配给变量.

总结

以上是内存溢出为你收集整理的android – 如何使用Intent.putExtra和Parcel将对象从一个Activity发送到另一个Activity?全部内容,希望文章能够帮你解决android – 如何使用Intent.putExtra和Parcel将对象从一个Activity发送到另一个Activity?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存