2

同じ質問がたくさんあることは知っていますが、それでもOnActivityResultは呼び出されていません。

これは私のコードです

アクティビティA:

        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);
    }

アクティビティB:

@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

以下のコードを試してください

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

わかりました。主な問題は、タブホスト内からアクティビティを呼び出したことです。タブを含むアクティビティ(TabActivityを拡張するアクティビティ)から呼び出しましたが、機能します。

つまり、各タブをアクティビティとして使用している場合でも
、startActivityForResultを呼び出す必要があるのは、TabActivityを拡張するメインアクティビティです。

よろしくお願いします

于 2012-08-21T10:18:56.367 に答える
0

子どもの活動では、子どもの活動で使用しました

getParent().startActivityForResult(intent, positive_request_code);
于 2013-01-18T12:18:20.520 に答える