欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安卓(android)之间的传值

程序员文章站 2022-05-05 08:26:32
...

情况1:显示启动

Intent i = newIntent();

i.setClass(this,Second.class);

//Intent i = newIntent(this,Second.class);

startActivity(i);

情况2:隐式启动

Intent i = new Intent();

i.setAction(“Ra”);

startActivity(i);

二.启动Activity,需要第二个Activity返回值

第一个Activity中代码
Intent i = new Intent(this,Second.class);
startActivityForResult(requestCode,i);

onActivityResult(requestCode,resultCode,intent){
    //requestCode标志是哪一个Activity返回来的结果
    //resultCode,标志第二个Activity操作是否成功
    //intent,携带第二个Activity返回值
}
  第二个Activity中代码
Intent i = new Intent();
setResult(resultCode,i);
finish();

三、两个Activity传值

第一个activity代码
传值方式一
i.putExtra("key1",value1);
方式二
Bundle b = new Bundle();
b.putString("key2",value2);
i.putExtra("bunclekey",b);
方式三
i,putExtra("key",Parcelable(serilizable)子类对象);


在第二个Activity中获取第一个Activity中传过来的值

Intent i = getIntent();
方式一取值
String value1 = i.getStringExtra("key1");
方式二取值
Bundle b = i.getBundleExtra("bunclekey");
String value2 = b.getStringExtra("key2");

方式三取值:
Parcelable子类 对象 = i.getPacelableExtra("key");
Serilizable子类 对象 =  i.getSerilizableExtra("key");