2011-02-24 17 views
2

私はあるアクティビティから別のインテントにリソースを渡すことを何時間も試みてきました。ここでインテント経由でアクティビティにリソースを渡す

は私の「ソース」の活動からのコードです:

  Intent myIntent = new Intent(view.getContext(), Activity3.class); 

      int res = R.raw.voicefile; 

      myIntent = myIntent.putExtra("soundfile", res); 

      startActivityForResult(myIntent, 0); 

あなたが見ることができるように、私は私の生のフォルダにvoicefileと呼ばれるファイルを持っていると私はそれに等しい解像度を設定し、私にそれを渡しています意図。私の受信アクティビティで

(私が想定しています、それはint型です)、私が持っている:私は、ファイルが私の先の活動で、そのR.raw.voicefileに等しくなることを期待していた。この時点で

Intent sender=getIntent(); 
    int file=sender.getExtras().getInt("soundfile"); 

私のような私のMediaPlayerの呼び出しで私の変数 'file' を使用することができます

  MediaPlayer.create(getBaseContext(), file).start(); 

対:

  MediaPlayer.create(getBaseContext(), R.raw.voicefile).start(); 

私の問題は、ターゲットアクティビティを起動するソースアクティビティからボタンをクリックするたびに強制終了されます。

あなたの専門家は私のコードで何かが間違っているのを見ていますか?

+1

エラーは何ですか?ログには詳細な情報が必要です。 – EboMike

答えて

2

試してみてください。

int file=sender.getIntExtra("soundfile", 0); 

私はIntent.getExtras()はあなたがいないIntent、中にあなたのエキストラをマッピングするためにBundleを使用している前提としていと思います。

関連する問題