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
}
});
}