0

私は最近アンドロイド開発を始めたばかりで、比較的単純な概念を理解しようとしています。最初に質問の背景を説明します。

私は最近、MVC デザイン パターンを使用して Java プログラムを作成しました (ただし、ビューとコントローラーはリンクされていました)。このプロジェクトでは、モデルとなる独自のクラスを作成し、main() 関数で、このモデル クラスのインスタンスを 1 つだけ作成し、それを他のすべてのクラスに渡しました。これにより、すべてのクラス (したがってすべてのビュー) が同じモデル オブジェクトを持つことができるようになり、したがって、そのモデル クラスに対して異なるコントローラーによって行われたすべての更新が可能になりました。

これが Android のアクティビティでどのように機能するのか疑問に思っています。各アクティビティが同じ単一のモデル クラス オブジェクトへの参照を持つことは可能ですか? たとえば、いくつかのものを含むホームページを持つ Android アプリケーションがあるとします。ホームページには、ユーザーがいくつかの設定を変更できる新しいアクティビティを開始する「設定」ページに移動できるボタンがあります。モデルオブジェクトを「設定」アクティビティに渡し、ユーザーに「設定」アクティビティで可能な変更を加えてもらい、それに応じてモデルを更新して、ホームページに戻ったときにモデルがオブジェクトにはこれらの変更が含まれています。

これは可能ですか?私は単に物事を過度に複雑にしていますか?

4

1 に答える 1

1

モデルの構造によって異なります。モデルが複雑すぎる場合は、Application クラスによって作成された静的シングルトンにして、必要な場所から参照を取得します。

http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/

または、モデルを Parcelable にしてインテントを渡すこともできます。これはもう少し複雑です。

アクティビティにデータを渡すには、Intent エクストラで Parcelable または Serializable を使用できます。変更された結果を取得するには、startActivityForResult と onActivityResult を使用できます。

http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/

TabHostアクティビティから結果(startActivityForResult)を返す方法は?

http://developer.android.com/reference/android/os/Parcelable.html

http://developer.android.com/reference/android/content/Intent.html

于 2013-04-01T14:42:42.313 に答える