質問: ### 前提・実現したいこと JAVAで複数の各Actibityに同じ画像を表示するようなアプリをAndroidStudioで作成しています。 (ギャラリーから選択した画像をパズルにする、というような内容です) 画像を、Intentを用いてActivity間で遷移する場合 Uriを取得→Bitmapに変換して画像を取得するのですが putExtraでUriデータの時点でActivity間でデータの受け渡しを行い 受け取り先でUriをBitmapデータに変換して表示、またUriデータを渡す... という処理を実装しています。 ここで、「パズルを一時停止した時、そのパズルの作成状況の保存、 アプリのスタートページに一時中断中のパズルの画像を表示、その画像をタップでパズル状況を読み込み再開」 という機能を実装しようと思っています。 パズルを一時停止した後、タスクキルなどの動作も想定しておりますので、Intentでのデータ受け渡しでは 中断データが消えてしまう事を懸念して アプリ内にデータを保存する事をSharedPreferencesで実現しようと思っています。 取りあえず、BitmapデータをStringデータに変換して、StringデータをSharedPreferencesに格納し それぞれ読み込む、という処理を行っています。 が、あまりに大きい画像だと読み込めない事があるので 出来ればIntentと同じように、アプリ内にUriデータを保存し、各IntentでBitmapに変換、表示 という風に処理したいと思っています。 ### 発生している問題・エラーメッセージ ここで質問なのですが、 「アプリ内にUriデータを保存する方法があるのか」という事を是非知りたいと思ったので 質問させていただきました。 Preferencesでは boolean型 float型 int型 long型 String型 の五つしか使えない、と伺っているのですが UriをStringに変換したり出来るのでしょうか...? もしくは、全く別の方法でアプリ内にデータを保存、読み込みする機能が存在するのでしょうか? 結構調べたのですが、どうも調べ方が下手なのかPreferencesでの保存方法しか見つけることが出来ませんでした。 よろしければ、何かアイデアを授けていただければ幸いです。 もし「質問の意図が分からない」「用語の使い方が間違っている」などあればご指摘お願いいたします。 すみません!地震きたので中断します!
回答: URI#getPathで取得したString保存したらいいと思いますよ。