我想知道为什么下面的代码效果不好。
@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的适配器。任何帮助都会很棒。谢谢。
答案 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
时,您需要对此进行处理。
有关详细信息,请参阅此帖子。