解決一切listview或者adapter等類似的資料錯誤,點選錯誤的問題。

Rex葉然發表於2017-05-27

介面卡新手操作的時候經常會遇到資料紊亂錯位的問題,延伸會導致資料和點選事件不一致 資料越界,重新整理不及時的問題。

今天給大家介紹一炒雞簡單的模式可以杜絕這個問題。
就是保證每次重新整理前資料是準的,且資料來源不與外界發生任何關聯,只是內部的新增。沒有任何記憶體指到adapter內部

有這個問題解決不了的 歡迎討論。

  1. 介面卡用區域性變數裝資料
  2. 每次 notifyDataSetChanged() 直接運算元據源

//Activity裡面
   protected List<String> mDatas = new ArrayList<>();//假資料

    public void init() {
        yourAdapter adapter = new yourAdapter();
        lv.setAdapter(adapter);
        //每次網路請求or資料變化
        adapter.setData(mDatas);
        }
 public class yourAdapter<T> extends BaseAdapter {
        protected List<T> datas = new ArrayList<>();
        private someImpl impl;
        private Activity act;


        public yourAdapter() {
        }
        public void setData(List<T> datas) {
            // UI執行緒
            datas.clear();
            datas.addAll(datas);
            notifyDataSetChanged();
        }

        @Override
        public int getCount() {
            return datas.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

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



            return null;
        }
    }

相關文章