从意图通知父活动

时间:2014-11-03 04:13:30

标签: android

如何通知(例如调用方法)父活动以另一个活动作为意图启动,因此一旦第二个意图完成某些工作,它应该通知第一个活动传递一些参数。

3 个答案:

答案 0 :(得分:3)

非常简单,你应该致电

startActivityForResult(yourNextActivityIntent,requestCode);

然后在下一个Activity中,您可以将结果发送到ParentActivity,就像这样

Intent intent=new Intent("key","value");
setResult(-1,intent);
finish();

并且在您的父级Activity中,您必须覆盖此方法才能获得待处理结果

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
// here you can check for the requestCode that you have requested while calling next Activity
if (requestCode == yourRequestCode && resultCode == Result.OK){
//perform your actions
}
}

答案 1 :(得分:2)

完成活动后

        @Override  
            public void onClick(View arg0) {  
                String message=editText1.getText().toString();  
                Intent intent=new Intent();  
                intent.putExtra("MESSAGE",message);  

                setResult(2,intent);  

                finish();//finishing activity  
            }  
        });  

在父活动中尝试此代码,覆盖onActivityResult()Methode

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

                     }  

 }  

答案 2 :(得分:0)

我们需要通过startActivityForResult(intent,resultcode)启动活动,因此这将带有两个参数作为请求代码(INTEGER)和intent。当第二个活动完成工作时我们需要创建没有参数的intent,然后我们需要调用setResult(resultcode,intent)方法来通知第一个活动。然后我们需要调用finish()方法来销毁第二个活动。当第一个活动成为焦点时,将调用ActivityResult,因此我们需要实现它。我们可以通知第一项活动。

http://www.javatpoint.com/android-startactivityforresult-example