0

以下のようにアダプターリストビューを書くと、リストビュー要素のランダムな位置が変わるのはなぜですか? 私のひどい英語でごめんなさい。

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;
            }
    }
4

1 に答える 1

1

これは、convertview が再利用されているためです。これを試して

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

于 2013-01-22T11:33:53.930 に答える