listview元素行为

时间:2013-01-22 11:30:03

标签: android android-listview

为什么当我编写适配器listview时,如下所示,listview元素随机改变位置?对不起,我的英语很糟糕。

private class Adapt2 extends ArrayAdapter {
            ArrayList<String> jsonBanks;
            public Adapt2(Context context, int textViewResourceId, List objects) {
                    super(context, textViewResourceId, objects);
                    jsonBanks = new ArrayList<String>();
                    jsonBanks.addAll((ArrayList<String>)objects);
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                    if(convertView==null){
                            LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                            convertView= vi.inflate(R.layout.main_item, parent,false);

                            TextView tv = (TextView)convertView.findViewById(R.id.itemText);
                             tv.setText(jsonBanks.get(position));

                    }

                    return convertView;
            }
    }

1 个答案:

答案 0 :(得分:1)

因为您的转换视图正在重复使用。 试试这个

if(convertView==null){
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       convertView= vi.inflate(R.layout.main_item, parent,false);
}
TextView tv = (TextView)convertView.findViewById(R.id.itemText);
tv.setText(jsonBanks.get(position));

return convertView;

观看此内容以了解有关正在发生的事情的更多详细信息

http://www.youtube.com/watch?v=wDBM6wVEO70