2013-10-16 5 views
8

ここが私が渡しています。 pictureFileはゲッターの一つは、私はそれを得るために使用します次のアクティビティでFileファイルをインテントで渡すと、どのように取得するのですか?

Intent intent = new Intent (context, ShowPicActivity.class); 
intent.putExtra("picture", pictureFile); 

のですか?

Intent intent = getIntent(); .....?

+0

Fileオブジェクトを渡さないでください。そのファイルにURIを渡す方が良いでしょう。 – Leonidos

+0

なぜそうですか? @Leonidos – TooTiredToDrink

+0

あなたはどこでも見たことがありますか? URIはこれを行うアンドロイドの方法です。なぜ私はあなたがこれをしてはならないのか記事を見つけようとします。 – Leonidos

答えて

7

次のことを試してみてください。

YourPictureClass picture = (YourPictureClass)getIntent.getExtras().get("picture"); 

IntentあなたがBundleのインスタンスを取得するにgetExtras()を呼び出すことによって。
Bundleの通常のget()では、のすべてを読むことができ、Intentという呼び出しに渡します。あなたがしなければならないのは、オブジェクトをclassに戻して解析することだけです。 (。意図を通じてオブジェクトを送信するために最初に確認すること)

11

ファイルが、シリアライズを実装 (source

ので、あなたはそれを行うことができ、ちょうどこのようなファイルするために、結果のオブジェクトをキャスト:

File pictureFile = (File)getIntent.getExtras().get("picture"); 

いいですね。 the getter for 'object'シリアライズ可能なオブジェクトが必要です。キャストは十分です。

+0

'getSerializableExtra()'はもっと適切でしょうか? –

関連する問題