例如,我有主要活动。我打电话的地方:
Intent callchild = new Intent(this, childActivity.class);
startActivity(callchild);
然后我想在孩子完成时在主要活动中做点什么。 我该怎么办?
答案 0 :(得分:5)
您可以使用startActivityForResult()
代替startActivity()
。当childActivity完成时,父级的onActivityResult()
将调用。
注意:您必须覆盖父活动的onActivityResult()
。
您还可以按照setResult()
在子活动中执行的操作设置一些提示,这应该在ChildActivity调用finish()
或onDestroy()
示例强>
来自ParentActivity
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent, 2);// Activity is started with requestCode 2
}
});
儿童活动中的
Intent intent=new Intent();
intent.putExtra("MESSAGE",message);
setResult(2,intent);
finish();//finishing activity
在ParentActivity中
// Call Back method to get the Message form other Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==2)
{
String message=data.getStringExtra("MESSAGE");
textView1.setText(message);
}
}