列表项目的位置在滚动时发生变化

时间:2012-08-22 10:32:04

标签: android listview

我有以下代码,我在其中进行JSON解析并在listview中显示结果。 我面临的问题是,每当我滚动列表视图时,我的列表视图内容位置都会得到更改。如果住宿是列表中的第一项,当我向下滚动时,我可以再次看到住宿作为列表中的最后一项或任何其他位置。我的log-cat显示了正确的结果,但没有显示listview。我没有得到我错误的地方为什么我的列表没有显示我正确的结果。

2 个答案:

答案 0 :(得分:2)

尝试按照以下

关注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;
}

答案 1 :(得分:0)

如果它对你有帮助,可以改变你的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;
}