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