金土にナニした Fragment の Hands-on について再度確認

というか金曜夜分については最後らへんの記憶が見事に無い (当たり前)。というかひたすらに写経だったカンジなので再度確認してみました。
以下、箇条書きですがメモをこちらにも残しておきます。

  • 4.Fragment 固定で指定のレイアウト
    • これを setContentView
    • Activity から Fragment の searchEvent 呼び出し
  • 5.XML をパースする処理の追加
    • ListFragment を使って一覧表示
    • setListShown() メソドによる制御
    • onPostExecute でアダプタ作り直し
    • result (検索結果) に依存しているため
  • 6.Fragment の移動
  • 7.リストのタップで詳細情報表示
    • intent 経由してデータを渡す
    • 1 件毎の情報を parcelable なオブジェクトに
    • onListItem() メソドでオジェクト取得して Intent で渡す
    • AtndData.CREATOR (Parcelable.Creator) < 未調査
  • 8.Fragment から startActivity するのではなく Activity から
    • Fragment の機能の抽象化
    • リスナな i/f 作って Activity 側から呼び出しの形に
  • 9.DialogFragment 使う
    • Fragment#setArguments()
    • Fragment#getArguments()
    • 画面回転時、Fragment 自動で再生成
    • 空のコンストラクタが呼ばれる
    • データをセットする FactoryMethod (newInstance) の実装 (Fragment 側)
    • onCreateView で setArgument して画面にセット (Fragment 側)
    • Fragment 側から呼び出されるメソドで newInstance して show (Activity 側)
  • 10.画面回転
    • 一覧画面 (ResultFragment)
    • onSavedInstanceState() メソドの使用
  • 11.横画面
    • layout-land/main.xml 追加
    • FrameLayout 追加してここに DetailFragment を入れる
    • findViewById して FrameLayout な View があれば横と判定
    • Activity 側で表示の制御を行なっている
    • ResultFragment で表示位置の保存を行なっている
    • DetailActivity では setContentView 呼び出していない
    • android.R.id.content は FrameLayout で Root な View

Fragment って抽象化って観点で見てみると結構面白いですね。