2013年10月14日 星期一

Android ListView 滾動狀態

得到ListView 滾動的狀態(回收機制)處理

ListView滾動時內容穢亂跳
這時使用setViewBinder 來監聽ListView 是否被移動
而被移動 判斷其內容是否符合我們的設定值


list.setViewBinder(new ViewBinder() {
    @Override
        public boolean setViewValue(View view, Object data,String textRepresentation) {
            view =  (View) view.getParent();  //因為預設View抓到的是TextView 所以取得父類別在抓到CheckedTextView
            for(int i = 0; i < item_time.size(); i++){

                if(data.toString().equals(item_time.get(i)) && selectList.size() > 0){
                    CheckedTextView chkItem = (CheckedTextView) view.findViewById(R.id.skip);
                     //這段判斷目前的CheckedTextView是否為被選取的如果是則固定背景為此圖
                    if(Integer.parseInt(selectList.get(0)) == i ){
                        chkItem.setBackgroundResource(R.drawable.btn_inuse);
                        chkItem.setChecked(true);

                    }else{
                        chkItem.setBackgroundResource(R.drawable.btn_available);
                        chkItem.setChecked(false);
                    }
                }
            }
        return false;
    }
});