Android - 自动回收listview元素?

时间:2011-04-17 06:48:44

标签: android listview recycle

我创建了一个包含自定义SimpleCursorAdapter的列表视图。我想在列表的第一个元素中放置一个标题。一次可以在屏幕上显示8个视图。当我向下滚动到第九个视图时,第一个元素的标题出现。至少我相信这就是正在发生的事情。我删除了listview上方的一个按钮,允许所有元素出现在屏幕上,只有第一个元素有标题。

我相信我每次强迫新观点被夸大。我已经阅读了一下convertview,它似乎是你必须手动实现的东西。

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {

    final LayoutInflater inflater = LayoutInflater.from(context);
    int position = cursor.getPosition();
    View v;
    v = inflater.inflate(R.layout.roster_lv_row_entry_with_header, parent, false);      
    if(position > 0)
        v = inflater.inflate(R.layout.roster_lv_row_entry_no_header, parent, false);

    return v;

1 个答案:

答案 0 :(得分:4)

您应该覆盖适配器类中的(final int position, View convertView, ViewGroup parent)方法,并

  1. 分配convertView参数a 新值(,如有必要,但最好只使用它,如果它是正确的类型,并使用基于yourListData.get(position)的正确数据填充它,其中yourListData例如是{{ 1}}扩展名。)
  2. 然后归还。