1

我对这段代码有疑问。我修改了 ArrayAdapter 的内容,并作为包含该数组的对象的参数进行了排序。问题是用不同的东西、图标、改变背景等修改视图(是一个列表视图)。事实是,通过排序似乎混合了一些视图的属性。例如,由于移动而传播到另一个背景的背景,例如:

public class IconLVAdapter extends ArrayAdapter<Datos> {

        private List<Datos> objetos;
        private boolean online;

        public IconLVAdapterBuses(Context context, int textViewResourceId, List<Datos> objetos, boolean online) {
                super(context, textViewResourceId, objetos);
                this.objetos = objetos;
                this.online = online;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                View v = convertView;
                if (v == null) {
                    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(R.layout.rowlist, null);
                }
                Datos o = objetos.get(position);
                if (o != null) {

                        TextView tvNum = (TextView) v.findViewById(R.id.num);

                        if (o.getpOrigen()==null && tvNum!= null)
                            tvNum.setText(o.getnum());
                        else{
                                       ************** omitido **************
                        }

                }
                return v;
        }



        public void refreshArray(){
            this.sort(new Comparator<Datos>() {
                public int compare(Datos object1, Datos object2) {
                    return object1.compareTo(object2);
                };
            });
            this.notifyDataSetChanged();
        }

有任何想法吗?谢谢

4

1 回答 1

0

对适配器进行排序后,您可以尝试调用http://developer.android.com/reference/android/widget/AbsListView.html#invalidateViews () 吗?

于 2010-11-27T11:04:26.953 回答