startActivityForResult 方法 返回数据到前一个 Activity

MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button button=(Button)findViewById(R.id.button1);
  button.setOnClickListener(new OnClickListener(){
   public void onClick(View v)
   {
    Intent intent=new Intent();
    intent.setClass(MainActivity.this, main2.class);
    Bundle bundle=new Bundle();
    RadioButton rb=(RadioButton)findViewById(R.id.radio0);
    String sex="";
    if(rb.isChecked())
     sex="M";
    else
     sex="W";
    bundle.putString("sex", sex);
    
    EditText edittext=(EditText)findViewById(R.id.editText1);
    double height=Double.parseDouble(edittext.getText().toString());
    bundle.putDouble("height", height);
    intent.putExtras(bundle);
    startActivityForResult(intent,55);  //使用startACtivityForResult(intent,55)启动另一个activity
    
   }
  });
 }

 

//这是回传startACtivityForResult(intent,55) 将触发的事件

  protected void onActivityResult(int requestCode,int resultCode,Intent data)
 {
  EditText edittext=(EditText)findViewById(R.id.editText1);
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode==55)
  {
   switch (resultCode)
   {
   case 44:
    Bundle bundle=data.getExtras();
    edittext.setText(bundle.getString("sex"));
    edittext.setText("这是回传的");
    break;
    default:
     break;
   }
  }
 }

 

main2.java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main2);
  TextView tv=(TextView)findViewById(R.id.textView9);
     intent=this.getIntent();
  Bundle bundle=intent.getExtras();
  String sex="";
  if(bundle.getString("sex").equals("M"))
   sex="男";
  else
   sex="女";
  Double height=bundle.getDouble("height");
  
  tv.setText("你的姓别:"+sex+"\n你的身高:"+height);
  
  Button button=(Button)findViewById(R.id.button1);
  button.setOnClickListener(new OnClickListener(){
   
   public void onClick(View v)
   {
    main2.this.setResult(44,intent);   //回传主页面 将触发 onActivityResult事件
    main2.this.finish();    //关闭当前的activity
   }
  });
 }

posted @ 2013-12-23 14:47  爱编程hao123  阅读(259)  评论(0编辑  收藏  举报