Fragment ハンズオン写経 (3)

なんとなく仕事なのかそうじゃないのかがワケワカになりつつもありますが昨晩の続きです。

  • 10. 画面回転時に一覧データを保持しよう
    • キャストしないと駄目、って叱られる
					mDataList = result;
    • ので以下に修正
					mDataList = (ArrayList<AtndData>)result;

で、試験してみたら回転時に最初の状態に戻る。あらら、と思ったら盛り込み漏れがありました。onActivityCreated の要修正な部分が以下のママになってました。

		ArrayAdapter<AtndData> adapter = new ArrayAdapter<AtndData>(getActivity(), 
				android.R.layout.simple_list_item_1);

以下にしなきゃ、だったのですが

		ArrayAdapter<AtndData> adapter = new ArrayAdapter<AtndData>(getActivity(), 
				android.R.layout.simple_list_item_1,
				mDataList);

すばら。ちなみに詳細情報なダイアログについてはスデに対処済みだったらしい。次でラストか。てか最後は色々な意味でキツいな。

ラスト

ええと、面倒だけど順にすすめてみます。

  • 64p で修正するのは DetailDialogFragment.java ではなくて DetailFragment.java
    • ここまで一気にやってるとへろへろになっててハマるかも

む、70p な部分までがつっとヤッツケて動作確認してみたら、縦表示で詳細出そうとしたらオチるな盛り込み漏れがある模様。DetailFragment でぬるぽ発生な模様。
あ、DetailActivity の以下 (onCreate のケツの部分) を削除してなかったり

		setContentView(R.layout.detail_fragment);
		
		Intent intent = getIntent();
		AtndData data = (AtndData)intent.getParcelableExtra("data");
		if(data != null) {
			FragmentManager manager = getSupportFragmentManager();
			DetailFragment fragment = (DetailFragment)manager.findFragmentById(R.id.detail_fragment);
			fragment.setAtndData(data);
		}

DetailFragment の属性とか setAtndData メソドの定義が残ってたりもしてました。やはり相当元気じゃないとキツいな。
ちなみに 70p および 71p の実装を盛り込んでいないのですが、詳細は出てきてますね。
そして盛り込んだら表示されなくなりました。どうもいかん。さっさと終わらせてメシを作らねば、な脅迫観念がアダになってる感満点。
よくよく見たら onItemClick なメソドを override してませんでした。あ、override してなかったのではなくて定義はしてたけど盛り込んでなかったのか。とほほほ。
と思ったら、何故かスデに以下な状態で記述されとりました。

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        
        AtndData data = (AtndData) l.getAdapter().getItem(position);
        
        if(mOnAtndListSelectedListener != null) {
            mOnAtndListSelectedListener.onAtndListSelected(data);
        }
    }

こりゃ確かにスデに盛り込まれております状態っちゃそうだなorz

終わった

いやはや。これはかなり体力を必要とするアレですな。その内

  • ICS でこれを試してみる
  • AsyncTaskLoader 使う形で云々

な検証も必要なのかどうなのか。
ということで、これから晩メシ製造に着手します。
ちなみにリポジトリ方面にも反映済みです。