我有ListView
,我有自定义View
,PostView
。
如何创建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()
,但也许我过早地访问了视图?
答案 0 :(得分:0)
为什么不在成员变量中挂起实例而不是稍后调用findViewById?
答案 1 :(得分:0)
PostView中的setRenderMode或使用PostView的Activity吗?
如果它在活动中,你应该这样做:
this.postImagePreview = (ImageView)p.findViewById( R.id.new_post_image_preview );
p是对您创建的PostView的引用。
答案 2 :(得分:0)
我的解决方案是只有一个超级自定义列表适配器,它能够返回不同类型的视图,并在生成的列表内容周围手动添加页眉和页脚视图。