1

我想知道为什么下面的代码不能正常工作。

  @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 后调用。我的listview 有两个headerview 和listview 项,其中一个headerview 是viewpager。当我更新数据源时,这个onUpdateView 的图像和titleText &时间文本返回空。调试并发现来自 getView() 的 onUpdateView 收到的“视图”帖子是标题视图而不是项目的视图。我不知道为什么,我在 android 工作了 2 年,我知道如何使用带有 listview 的适配器。任何帮助都会很棒。谢谢。

4

2 回答 2

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

于 2013-09-17T01:02:38.360 回答
0

当您将标题视图添加到 ListView 时,它实际上用一个包含标题视图作为第一项的新适配器包装了您的适配器。position在处理传入的方法时,您需要考虑到这一点getView

有关更多详细信息,这篇文章可能会有所帮助。

于 2013-09-11T02:02:17.570 回答