Android - 将自定义视图添加到ListView

时间:2012-05-07 20:13:05

标签: java android xml layout

我有ListView,我有自定义ViewPostView

如何创建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(),但也许我过早地访问了视图?

3 个答案:

答案 0 :(得分:0)

为什么不在成员变量中挂起实例而不是稍后调用findViewById?

答案 1 :(得分:0)

PostView中的setRenderMode或使用PostView的Activity吗?

如果它在活动中,你应该这样做:

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

p是对您创建的PostView的引用。

答案 2 :(得分:0)

我的解决方案是只有一个超级自定义列表适配器,它能够返回不同类型的视图,并在生成的列表内容周围手动添加页眉和页脚视图。