Activity間傳值方式總結

2021-09-26 01:45:50 字數 2789 閱讀 1080

第一種方法:(intent)

傳送方:

intent intent = new intent();

intent.putextra("name", "諸葛亮");

intent.putextra("age", 50);

intent.putextra("iq", 200.0f);

intent.setclass(mainactivity.this, secondactivity.class);

mainactivity.this.startactivity(intent);

接受方:

intent intent = getintent();

string name = intent.getstringextra("name");

int age = intent.getintextra("age", 0);

float iq = intent.getfloatextra("iq", 0.0f);

textview2.settext("name:"+name+",age:"+age+",iq:"+iq);

第二種方法:(bundle)

傳送方:

intent intent = new intent();

bundle bundle = new bundle();

bundle.putstring("name", "喬峰");

bundle.putint("age", 40);

bundle.putfloat("weight", 70.4f);

intent.putextras(bundle);

intent.setclass(mainactivity.this, secondactivity.class);

startactivity(intent);

接受方:

intent intent = getintent();

bundle bundle = intent.getextras();

string name = bundle.getstring("name");

int age = bundle.getint("age");

float weight = bundle.getfloat("weight");

textview.settext(name+","+age+","+weight);

傳送方:

intent intent = new intent();

intent.setclass(mainactivity.this, secondactivity.class);

startactivity(intent);

接受方:

textview = (textview) findviewbyid(r.id.textview);

textview.settext(name);

物件類要實現parclelable介面

傳送方:

intent intent = new intent();

person person = new person("孫悟空",500,55.6f);

intent.putextra("person", person);

intent.setclass(mainactivity.this, secondactivity.class);

startactivity(intent);

接受方:

intent intent = getintent();

person person = intent.getparcelableextra("person");

textview = (textview) findviewbyid(r.id.textview);

textview.settext(person.tostring());

物件類:

public class person implements parcelable 

public person(string name, int age, float weight)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

public float getweight()

public void setweight(float weight)

@override

public string tostring()

@override

public int describecontents()

@override

public void writetoparcel(parcel dest, int flags)

public static final parcelable.creatorcreator = new parcelable.creator()

public person newarray(int size)

};private person(parcel in)

}

Activity跳轉傳值的方式

一 普通的intent的傳值,oneactivity中intent.putextra twoactivity中intent.get extra 二 通過startactivityforresult onactivityresult setresult oneactivity中startactivit...

Activity傳值問題

昨天去完美面試,實力炮灰,問了這個問題沒答上來,現在仔細看看。activity傳值的話主要是 1.intent傳值 2.static變數傳值 4.clipboardmanager 剪下板 的傳值。5.資料庫的傳值 主要說下前兩種 1 intent 的傳值。intent intent new inte...

vue 元件間傳值總結

從父元件傳給子元件 1 通過屬性傳遞 child props title parent 2 引用refs this.refs.hw.xx 2,通過事件傳遞,子元件 父元件 child this.emit getmsg good parent 3,父元件傳後代 廣播子元素 this.on boardc...