私の Android プロジェクトには、2 つのフラグメントで作成されたマスター/詳細ビューを使用するアクティビティがあります。私のdetailfragmentは私にいくつかの「問題」を与えています。
50 以上のコントロール (TextViews、EditTexts、CheckBoxes、Spinner) で構成されています。この 50 以上のコントロールのうち、detail-fragment 内の 32 のコントロールへの参照をプログラムで取得し、それらのデータを SQLite データベースからロードします。
これを実行し、使用してコントロールを初期化すると
(SomeControl).findViewById(R.id.mycontrol);
LogCat は、メイン スレッドでやりすぎている可能性があることを警告し続けます。
findViewById とビューの膨張はコストのかかる操作であることを知っているので、アイデアがありました!
ListFragment で行っているように、detail-fragment でビューホルダー パターンまたはビュー リサイクルを使用する方法があるかどうか疑問に思っていました。そうすれば、ListView で別のアイテムを選択するたびに詳細ビューを再初期化することを避けることができます。そして、私と同じように .findViewById を呼び出さないでください。誰かがこのようなものを実装する方法について考えを持っていますか? detailsfragment の onCreate メソッドでコントロールの初期化を行った場合、違いはありますか? また、詳細フラグメントを「シングルトン」にして、リストフラグメントの選択が変更されたときに getLoaderManager().restartLoader を使用することも考えていました。このすべてについての考えは非常に高く評価されます。