【问题标题】:Position of listitem items changes on scrolling滚动时列表项的位置发生变化
【发布时间】:2012-09-11 18:38:34
【问题描述】:

我有以下代码,我在其中进行 JSON 解析并在列表视图中显示结果。 我面临的问题是每当我滚动列表视图时,我的列表视图内容位置都会发生变化。如果住宿位于列表中的第一项,当我向下滚动时,我可以再次看到住宿作为列表中的最后一项或任何其他位置。我的日志猫显示正确的结果,但不是列表视图。我没有找到我出错的地方,为什么我的列表没有显示正确的结果。

【问题讨论】:

  • 对您的代码的一个小改动建议:在 CategoryAdapter 的 getItem 函数中将其设为 return data.get(position);
  • @rajpara 它仍然给出同样的错误,项目正在改变那里的位置

标签: android listview


【解决方案1】:

尝试遵循 viewHolder 模式,如下所示

        ViewHolder holder;
        if(convertView == null) 
        {
             holder = new ViewHolder();            
             convertView = mInflater.inflate(R.layout.cat_content, null);

             holder.name =  (ImageView)convertView.findViewById(R.id.name); 
             convertView.setTag(holder);
        }
        else
        {     
            holder = (ViewHolder) convertView.getTag();     
        } 

        item = new HashMap<String, String>();
        item = data.get(position);
        holder.name.setText(item.get(CATEGORY_NAME));

        return convertView;




class ViewHolder
{
     TextView name;
}

【讨论】:

    【解决方案2】:

    如果对您有帮助,请像这样更改您的 getView..

    public View getView(int position, View convertView, ViewGroup parent) {
    
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.cat_content, null);
         }
    
         name = (TextView) convertView.findViewById(R.id.name);
         item = new HashMap<String, String>();
         item = data.get(position);
         name.setText(item.get(CATEGORY_NAME));
    
        return convertView;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-05
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多