Android 从意图通知父活动
如何通知(例如调用方法)作为意图启动另一个活动的父活动,因此,一旦第二个意图完成了一些工作,它应该通知第一个活动传递一些参数 当您完成活动时Android 从意图通知父活动,android,Android,如何通知(例如调用方法)作为意图启动另一个活动的父活动,因此,一旦第二个意图完成了一些工作,它应该通知第一个活动传递一些参数 当您完成活动时 @Override public void onClick(View arg0) { String message=editText1.getText().toString(); Intent intent=new Intent();
@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()方法
这很简单,你应该打电话
startActivityForResult(yourNextActivityIntent,requestCode);
然后在下一个活动中,您可以像这样将结果发送给ParentActivity
setResult(RESULT_OK);
finish();
在父活动中,您必须重写此方法以获得挂起的结果
@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
}
}
我们需要通过startActivityForResult(intent,resultcode)来启动活动,因此这将包含两个参数,即请求代码(INTEGER)和intent。当第二个活动完成工作时,我们需要创建不带参数的intent,然后我们需要调用setResult(resultcode,intent)方法来通知第一个活动。然后我们需要调用finish()方法来销毁第二个活动。当第一个活动聚焦于ActivityResult时,将调用它,所以我们需要实现它。在那里,我们可以通知第一个活动
哇,这是一个很棒但很少被提及的问题。你可能想看看这个答案:谢谢你的及时回答,这个答案中只缺少开始这个活动的一个步骤,所以我选择了另一个答案作为最佳答案。
@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
}
}