この種の質問は定期的に表示されます。これが以前にカバーされていれば申し訳ありませんが、私は初心者であり、適切な答えを見つけることができませんでした。クラスとアクティビティ間のコミュニケーションの正しい実装を扱います。
ギャラリーアプリを作りました。主なアクティビティは3Main
つあります。1つはパターンを使用してファイル名を検索することです。1Thumb
つは、パターンに一致するすべての画像をグリッドビューのサムネイルとして表示し、Photo
アクティビティは、の親指をクリックするとフルサイズの画像を開きますThumbs
。ファイル名(配列)とグリッドビューでクリックされた親指の(an )をPhoto
介してアクティビティに渡します。Intent
position
int
この3番目Photo
のアクティビティには、1つのビューしかTouchImageView
ありません。aは、画像のショートクリックの場所(左、右、または中央)に応じて、前/次の切り替えとズームに適応しました。Photo
さらに、 EXIF情報を表示するためにロングクリックリスナーを追加しました。
うまくいっていますが、実装に満足していません...いくつかのことが正しくありません。
私が経験している問題の1つは、画像の右側をクリックしてPhoto
アクティビティの次の画像を表示すると、正常に切り替わりますが(position++
)、デバイスを回転させると元の画像がposition
表示されることです。
何が起こっているのかというPhoto
と、画像を回転させると破壊され、何らかの理由でsuper.onCreate(savedInstanceState)
、Extras(親アクティビティではなくでposition
変更されたもののみ)を再度ロードすることなく、再起動します。Photo
startActivityForResult
の代わりに試してみましたstartActivity
が、失敗しました...
もちろん、position
データを保存するために工夫したことはできますが、活動の仕組みがわからない「概念」があるはずなので、正しくやりたいと思っています。
誰かが私が間違っていることを説明してもらえますか?それは私が望むものを実装するための最良の方法であり、その理由は何ですか?
どうもありがとう!!!