情况一:一个Activity跳转到另一个Activity时,将第一个Activity的数据传递到第二个Activity里面.
分析:当一个界面跳转到另一个界面的同时还要讲数据传递过去,这种情况需要用Intent类putExtra()方法实现.
具体在Onclick方法中的样例代码如下:
Intent i1=new Intent(this,SecondActivity.class); String Message=Edit1.getText().toString(); i1.putExtra("MESSAGE", Message); startActivity(i1);
情况二 :当第一个Activity将数据传递过去后,在第二个Activity中对传过来的数据进行修改后返回给第一个Activity
分析:这种情况下就不能使用startActivity()这个方法了,而是需要用startActivityForResult()这个方法,这个方法的作用是带回调启动Activity.
同时还需对onActivityResult()进行重写,对该方法的三个参数requestCode,resultCode,以及data进行定义.
具体代码如下:
1.首先回调启动Activity
Intent i2=new Intent(this,SecondActivity.class); String Message=Edit1.getText().toString(); i2.putExtra("MESSAGE", Message); int requestCode=2; startActivityForResult(i2, requestCode);//带回调启动Activity
2.在第二个Activity中对传递过来的数据进行修改保存(设置要返回的结果)
int resultCode=3; Intent data=new Intent(); String result=second_Text.getText().toString(); data.putExtra("RESULT", result); setResult(resultCode, data);//设置要返回的结果 finish();
3.第一个Activity中重写onAcivityResResult()方法
/** * 重写回调方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==2&&resultCode==3) { String info=data.getStringExtra("RESULT"); Edit1.setText(info); } }