Android系统。子活动完成后,在父活动中执行一些操作

时间:2015-05-16 08:15:52

标签: android

例如,我有主要活动。我打电话的地方:

Intent callchild = new Intent(this, childActivity.class);
startActivity(callchild);

然后我想在孩子完成时在主要活动中做点什么。 我该怎么办?

1 个答案:

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