2

我知道有很多相同的问题,但仍然没有调用 OnActivityResult。

这是我的代码

活动一:

        Intent i = new Intent();
        Bundle b = new Bundle();
        b.putString(ActivityB.LINK, ad.getLink());
        i.putExtras(b);
        i.setClass(this, ActivityB.class);
        startActivityForResult(i, 0);

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        /*handling of result...*/
        super.onActivityResult(requestCode, resultCode, data);
    }

活动乙:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ad_video);
    Bundle b = this.getIntent().getExtras();
    setResult(0);
    link = b.getString(LINK);
    videoView = (VideoView) findViewById(R.id.surface_view);
     videoView.setVideoPath(_link);
     videoView.requestFocus();
     videoView.start();
     videoView.setOnCompletionListener(new OnCompletionListener() {
        public void onCompletion(MediaPlayer mp)
        {
            setResult(0);
            ActivityB.this.finish();
        }
    });
}

无论我做什么,OnActivityResult都不会被调用。基于其他问题

  1. 我将 setResult 的值设置为 > 0 (0,99)

  2. 在android清单中没有launchMode(我也尝试将launchMode设为标准)

感谢您的任何帮助

4

4 回答 4

1

尝试在结果中添加一个意图,这段代码对我有用:

Intent in = new Intent(); 
setResult(101, in);
finish();
于 2012-07-31T11:52:39.127 回答
0

在子活动上,我在子活动上使用它

getParent().startActivityForResult(intent, positive_request_code);
于 2013-01-18T12:18:20.520 回答
0

试试下面的代码

Intent returnIntent = new Intent();
returnIntent.putExtra("ProfilePicPath", path);
setResult(RESULT_OK, returnIntent);
finish();
于 2012-07-31T12:04:24.043 回答
0

好的,我明白了,主要问题是我从标签主机中调用了 activtiy。我从包含选项卡(扩展 TabActivity 的那个)的 Activity 中调用它,它可以工作。

简而言之,即使我将每个选项卡用作一个活动,
应该调用 startActivityForResult 的那个是扩展 TabActivity 的主要活动。

谢谢大家的帮助

于 2012-08-21T10:18:56.367 回答