我有以下情况:
ParentActivityClass
{
private Intent intent;
@Override
public void onCreate(Bundle savedInstanceState)
{
.....
intent = new Intent(this, ChildActivity.class);
startActivityForResult(intent, 202);
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Log.d("Log", "OK");
}
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
finish();
}
});
@Override
public void finish()
{
Intent intent = new Intent();
intent.putExtra("extra", ".....");
setResult(RESULT_OK, intent);
super.finish();
}
调用子活动的finish()方法时,在父活动中调用onActivityResult。当子活动第二次打开时,不会调用onActivityResult。
错误在哪里?
答案 0 :(得分:1)
我看到的问题是你在View.OnClickListener中调用了startActivity(intent)
而不是startActivityForResult(intent, 202)
。
编辑: 我假设您通过按钮进入ChildActivity。
希望它有所帮助;) 最诚挚的问候