onActivityResult(Re)调用

时间:2015-01-27 17:58:07

标签: java android

我有以下情况:

家长活动:

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。

错误在哪里?

1 个答案:

答案 0 :(得分:1)

我看到的问题是你在View.OnClickListener中调用了startActivity(intent)而不是startActivityForResult(intent, 202)

编辑: 我假设您通过按钮进入ChildActivity。

希望它有所帮助;) 最诚挚的问候