Android学习—Activity之间数据传递之Intent数据传递
2015-01-06 09:20
555 查看
Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值:
1.传递后无返回值的情况:
当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用startActivityForResult (Intent intent, int requestCode);方法。
1.传递后无返回值的情况:
在起始Activity中,发送数据 protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.thisactivity); Intent intent = new Intent(); //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity intent.setClass(ThisActivity.this,TargetActivity.class); //绑定数据 intent.putExtra("username",username);//也可以绑定数组 intent.putExtra("userpass",userpass); //打开目标Activity startActivity(intent); } 在目标Activity中,接收数据: protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.targetactivity); //获得意图 Intent intent = getIntent(); //读取数据 String name = intent.getStringExtra("username"); String pass = intent.getStringExtra("userpass); } 也可以适用Bundle(捆) 在起始Activity中,发送数据: protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.thisactivity); Intent intent = new Intent(); //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity intent.setClass(ThisActivity.this,TargetActivity.class); //一次绑定多个数据 Bundle bundle = new Bundle(); bundle.putString("username",username); bundle.putString("userpass",userpass); intent.putExtras(bundle); //打开目标Activity startActivity(intent); } 在目标Activity中,接收数据: protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.targetactivity); //获得意图 Intent intent = getIntent(); //读取数据 Bundle bundle = intent.getExtras(); String name = bundle.getString("username"); String pass = bundle.getString("userpass"); }2.传递后有返回值的情况:
当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用startActivityForResult (Intent intent, int requestCode);方法。
在起始Activity中,发送数据: protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.thisactivity); Intent intent = new Intent(); //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity intent.setClass(ThisActivity.this,TargetActivity.class); //绑定数据 intent.putExtra("username",username);//也可以绑定数组 intent.putExtra("userpass",userpass); //打开目标Activity startActivityForResult(intent,1); } //需要重写onActivityResult方法 protected void onActivityResult(int requestCode, int resultCode, Intent intent){ super.onActivityResult(requestCode,resultCode,intent); //判断结果码是否与回传的结果码相同 if(resultCode == 1){ //获取回传数据 String name = intent.getStringExtra("name"); String pass = intent.getStringExtra("pass); //对数据进行操作 ...... } 在目标Activity中,接收数据: protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.targetactivity); //获得意图 Intent intent = getIntent(); //读取数据 String name = intent.getStringExtra("username"); String pass = intent.getStringExtra("userpass); //从EditText中获取新的数据给name和pass name = editText1.getText().toString(); pass = editText2.getText().toString() //数据发生改变,需要把改变后的值传递回原来的Activity intent.putExtra("name",name); intent.putExtra("pass",pass); //setResult(int resultCode,Intent intent)方法 setResult(1,intent); //销毁此Activity,摧毁此Activity后将自动回到上一个Activity finish(); }
相关文章推荐
- Android学习备忘009——Activity之间用Intent传递数据
- Android中Activity之间的数据传递(Intent和Bundle)
- android Activity之间通过Bundle和Intent传递数据
- Android 学习之路一:Activity之间传递数据的四种方式
- 【Android基础】利用Intent在Activity之间传递数据
- Android开发 --- 多个Activity,及之间数据传递 Intent
- android中activity之间数据通过Intent的传递
- android 开发手记 activity 之间数据的传递 intent 对象的使用
- Android 实例:在Activity 之间传递数据的intent
- Android之Activity之间的数据传递-intent-bundle
- Android Activity 之 Intent 数据传递学习笔记
- 通过intent、ClipboardManager在android不同activity之间传递数据
- Android中Activity之间的数据传递(Intent和Bundle)
- Activity之间的数据传递-android学习之旅(四十七)
- android中使用Intent在activity之间传递数据
- Android 学习之路 1:如何在Activity之间传递数据
- 2014-10-25Android学习--------activity之间批量传递数据----Bundle类的实现
- 安卓学习第28天:使用Intent在活动之间传递数据以及Activity的生命周期实例
- Android开发之使用Intent在Activity之间传递数据
- Activity之间的数据传递-android学习之旅(四十七)