【问题标题】:First Four Items repeating in custom ListView android在自定义 ListView android 中重复的前四个项目
【发布时间】:2016-01-13 13:37:02
【问题描述】:

我遇到了一个问题,也看到了这个 this 链接但没有帮助。

项目是 {a.b,c,d,e,f,g} 但显示 {a,b,c,d,a,b,c,d}。

@Override
public View getView(int i, View view, ViewGroup parent) {
    final ImageHolder imageHolder = new ImageHolder();
    ViewHolder viewHolder = new ViewHolder();

    if (view == null){
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(android.app.Service.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.feeds_list_facebook, null);
        //viewHolder = new ViewHolder();
        viewHolder.message = (TextView) view.findViewById(R.id.message);
        viewHolder.imageView = (ImageView) view.findViewById(R.id.image);
        Event event = events.get(i);
        Log.i("SIZE",events.size() + "");
        Log.i("MESSAGE", event.getMessage());
        Log.i("IMAGE__URL", event.getPicture());
        viewHolder.message.setText("");
        viewHolder.imageView.setImageBitmap(null);

        viewHolder.message.setText(event.getMessage());

        mImageLoader.DisplayImage(event.getPicture(), viewHolder.imageView);
        view.setTag(viewHolder);

    }
    viewHolder = (ViewHolder) view.getTag();

    return view;
}

还有我的viewHolder

class ViewHolder {
    TextView message;
    ImageView imageView;
}

【问题讨论】:

标签: android listview android-custom-view


【解决方案1】:

将这些行移到return view;行之前

    viewHolder.message = (TextView) view.findViewById(R.id.message);
    viewHolder.imageView = (ImageView) view.findViewById(R.id.image);
    Event event = events.get(i);
    Log.i("SIZE",events.size() + "");
    Log.i("MESSAGE", event.getMessage());
    Log.i("IMAGE__URL", event.getPicture());
    viewHolder.message.setText("");
    viewHolder.imageView.setImageBitmap(null);
    viewHolder.message.setText(event.getMessage());

您正在重用视图,这很好,因为现在您只在没有可重用视图时才膨胀视图,所以基本上是在开始填充列表时。

但是您也只是在膨胀时在列表项上设置自定义数据,这并不好。您始终设置自定义数据,无论是可重用视图还是新视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多