1

私は、を持っていますListView、そして私はカスタムを持っていますViewPostView

を作成し、それをviaにnew PostView()追加しますが、それでも。のオブジェクト表現にアクセスできるようにするにはどうすればよいでしょうか。ListView.addFooterView()PostView

今私が試しているのは:

// the footer
p = new PostView( this );

p.setTargetUri( C.API_CONTENT );
p.setRenderMode( PostView.MODE_TEXT | PostView.MODE_IMAGE );

commentListView.addFooterView( p );

しかし、それは失敗です。私がアクセスしようとすると、XMLコンポーネントが膨らんでいるはずです。

主に:

public void setRenderMode( int renderMode )
{
  this.renderMode = renderMode;

  // fails
  this.postImagePreview = (ImageView)findViewById( R.id.new_post_image_preview );
}

私はこれについて間違っていますか?定義済みonFinishInflate()ですが、ビューに時期尚早にアクセスしている可能性がありますか?

4

3 に答える 3

0

後でfindViewByIdを呼び出す代わりに、メンバー変数のインスタンスに固執しないのはなぜですか?

于 2012-05-07T20:38:59.707 に答える
0

setRenderModeはPostView内ですか、それともPostViewを使用するアクティビティですか?

アクティビティに含まれている場合は、次のことを行う必要があります。

this.postImagePreview = (ImageView)p.findViewById( R.id.new_post_image_preview );

pは、作成したPostViewへの参照です。

于 2012-05-07T20:41:47.040 に答える
0

私にとっての解決策は、さまざまなタイプのビューを返すことができるスーパーカスタムリストアダプターを用意し、生成されたリストコンテンツの周囲にヘッダービューとフッタービューを手動で追加することでした。

于 2012-05-16T15:03:22.077 に答える