调用addHeaderView()后,我在适配器getview()中得到一个标题布局

时间:2013-09-11 01:48:21

标签: android listview

我想知道为什么下面的代码效果不好。

  @Override
public void onUpdateView(View view, int position, NewsItemNormal data) {
    ImageView image = ViewUtils.findView(view, R.id.newslist_normal_image);
    TextView titleText = ViewUtils.findView(view, R.id.newslist_normal_title_text);
    TextView timeText = ViewUtils.findView(view, R.id.newslist_normal_time_text);
}

onUpdateView()是getview()的一个方法,在getView()之后调用获取convertView.My listview有两个headerview和listview项,其中一个headerview是viewpager。当我更新数据源时,这个onUpdateView的图像&安培; titleText& timeText返回null。 debuged并发现从getView()获得的onUpdateView的“视图”帖子是标题视图而不是项目的视图。我不知道为什么,我在Android工作2年,我知道如何使用与listview的适配器。任何帮助都会很棒。谢谢。

2 个答案:

答案 0 :(得分:1)

跟随代码运作良好。

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    if (null == convertView || !(convertView.getTag(R.id.tag_holder_default) instanceof ViewHolder)) {
        holder = new ViewHolder();
        convertView.setTag(R.id.tag_holder_default, holder);
    } else {
        holder = (ViewHolder) convertView.getTag(R.id.tag_holder_default);
    }
    return convertView;
}

注意(convertView.getTag(R.id.tag_holder_default) instanceof ViewHolder

答案 1 :(得分:0)

当您向ListView添加标题视图时,它实际上使用包含标题视图作为第一项的新适配器包装您的适配器。当您处理position方法中传递的getView时,您需要对此进行处理。

有关详细信息,请参阅此帖子。