关于Android Activity之间传递数据的6种方式
使用Inten的putExtra传递
第一个Activity中
//创建意图对象 Intentintent=newIntent(this,TwoActivity.class); //设置传递键值对 intent.putExtra("data",str); //激活意图 startActivity(intent);
第二个Activity中
//获取意图对象 Intentintent=getIntent(); //获取传递的值 Stringstr=intent.getStringExtra("data"); //设置值 tv.setText(str);
使用Intention的Bundle传递
第一个Activity中
//创建意图对象 Intentintent=newIntent(MainActivity.this,TwoActivity.class); //用数据捆传递数据 Bundlebundle=newBundle(); bundle.putString("data",str); //把数据捆设置改意图 intent.putExtra("bun",bundle); //激活意图 startActivity(intent);
第二个Activity
//获取Bundle Intentintent=getIntent(); Bundlebundle=intent.getBundleExtra("bun"); Stringstr=bundle.getString("data"); tv.setText(str);
使用Activity销毁时传递数据
第一个Activity中
Intentintent=newIntent(MainActivity.this,TwoActivity.class); //用一种特殊方式开启Activity startActivityForResult(intent,11); //设置数据 protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ super.onActivityResult(requestCode,resultCode,data); Stringstr=data.getStringExtra("data"); tvOne.setText(str); }
第二个activity中
//设置返回的数据 Intentintent=newIntent(); intent.putExtra("data",edtOne.getText().toString().trim()); setResult(3,intent); //关闭当前activity finish();
SharedPreferences传递数据
第一个Activity中
SharedPreferencessp=this.getSharedPreferences("info",1); //获取sp编辑器 Editoredit=sp.edit(); edit.putString("data",str); edit.commit(); //创建意图对象 Intentintent=newIntent(MainActivity.this,TwoActivity.class); //激活意图 startActivity(intent);
第二个Activity中
SharedPreferencessp=this.getSharedPreferences("info",1); //设置数据 tv.setText(sp.getString("data",""));
使用序列化对象Seriazable
工具类
importjava.io.Serializable; classDataBeanimplementsSerializable{ privateStringname; privateStringsex; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } }
第一个Activity
//创建意图 Intentintent=newIntent(MainActivity.this,TwoActivity.class); DataBeanbean=newDataBean(); //通过set方法把数据保存到DataBean对象中 bean.setName("啦啦"); bean.setSex("男"); intent.putExtra("key",bean); startActivity(intent);
第二个Activity
Intentintent=getIntent(); //反序列化数据对象 Serializablese=intent.getSerializableExtra("key"); if(seinstanceofDataBean){ //获取到携带数据的DataBean对象db DataBeandb=(DataBean)se; tv.setText(db.getName()+"==="+db.getSex()); }
使用静态变量传递数据
第一个Activity
Intentintent=newIntent(MainActivity.this,TwoActivity.class); TwoActivity.name="牛逼"; TwoActivity.str="你说"; startActivity(intent);
第二个Activity
//静态变量 protectedstaticStringname; protectedstaticStringstr; tv.setText(str+name);
以上所述是小编给大家介绍的关于AndroidActivity之间传递数据的6种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!