为什么当我编写适配器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;
}
}
答案 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;
观看此内容以了解有关正在发生的事情的更多详细信息