ListView 中使用checkbox狀態(tài)錯(cuò)亂的問(wèn)題

public class OperLayerItemAdapter extends BaseAdapter {
private ArrayList<LayerItem> mList;
private Context mContext;
private LayoutInflater mInflater;// 得到一個(gè)LayoutInfalter對(duì)象用來(lái)導(dǎo)入布局
private int mTouchItemPosition=-1;
private String mISelPos ="";
public void SetSelPos(String pos){
mISelPos = pos;
}

public OperLayerItemAdapter(Context context, ArrayList<LayerItem> list) {
    super();
    mContext = context;
    this.mList = list;
    this.mInflater = LayoutInflater.from(context);

}
private OnSeekBarValueChangeListener mOnSeekBarValueChangeListener=null;
public interface OnSeekBarValueChangeListener{
    void onClick(SeekBar seekBar, int progress, boolean fromUser,int pos);
};
public void setOnSeekBarValueChangeListener(OnSeekBarValueChangeListener SeekBarValueChangeListener){
    mOnSeekBarValueChangeListener = SeekBarValueChangeListener;
}
private OnCheckedValueChangeListener mOnCheckedValueChangeListener=null;
public interface OnCheckedValueChangeListener{
    void onClick(CompoundButton buttonView, boolean isChecked, int pos);
};
public void setOnCheckedValueChangeListener(OnCheckedValueChangeListener CheckedValueChangeListener){
    mOnCheckedValueChangeListener = CheckedValueChangeListener;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return mList.size();
}

@Override
public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return mList.get(arg0);
}

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public View getView(final int pos, View convertView, ViewGroup arg2) {
    final childViewHolder viewHolder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.layout_layer_item, null);

        viewHolder = new childViewHolder();
        viewHolder.LayerImageView = (ImageView) convertView
                .findViewById(R.id.id_layeritem_iv);
        viewHolder.LayerTextView = (TextView) convertView
                .findViewById(R.id.id_layeritem_tv);
        viewHolder.LayerCheckBox = (CheckBox) convertView
                .findViewById(R.id.id_layeritem_cb);
        viewHolder.LayerSeekBar = (SeekBar)convertView.findViewById(R.id.id_layer_seekBar);
        viewHolder.LayerSeekBar.setTag(pos);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (childViewHolder) convertView.getTag();
    }
    if (pos%2==0) {
        convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_dark_gray));
    }else{
        convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_light_gray));
    }
    viewHolder.LayerImageView.setBackgroundColor(FeatureRenderer.getLayerColor(mList.get(pos).get_lyrId()));
    String name =mList.get(pos).getlryName();
    viewHolder.LayerTextView.setText(mList.get(pos).getlryName());

//在CheckBox的onCheckedChanged中重新賦值個(gè)數(shù)據(jù)組璧尸,并且將設(shè)置復(fù)選框的選中狀態(tài)在CheckedChangeListener之后
viewHolder.LayerCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mOnCheckedValueChangeListener.onClick(buttonView,isChecked,pos);

            if (isChecked)
                mList.get(pos).setlryCheck(true);
            else
                mList.get(pos).setlryCheck(false);
        }
    });
    viewHolder.LayerCheckBox.setChecked((Boolean) mList.get(pos).islryCheck());


    viewHolder.LayerSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            int pos1 = (int) viewHolder.LayerSeekBar.getTag();
            mOnSeekBarValueChangeListener.onClick(seekBar,progress,fromUser,pos);
            float Opacity = (float) (progress / 100.00);
            mList.get(pos).setlyrOpacity(Opacity);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });
    int Opacity = (int) (mList.get(pos).getlyrOpacity()*100);
    viewHolder.LayerSeekBar.setProgress(Opacity);

    if (mList.get(pos).getlryName().equals(mISelPos)){
        viewHolder.LayerTextView.setTextColor(Color.RED);
    }else{
        viewHolder.LayerTextView.setTextColor(Color.BLACK);
    }
    return convertView;
}
class childViewHolder {
    public ImageView LayerImageView;
    public TextView LayerTextView;
    public CheckBox LayerCheckBox;
    public SeekBar LayerSeekBar;
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滑凉,一起剝皮案震驚了整個(gè)濱河市兼犯,隨后出現(xiàn)的幾起案子强衡,更是在濱河造成了極大的恐慌,老刑警劉巖合呐,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暮的,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡淌实,警方通過(guò)查閱死者的電腦和手機(jī)冻辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拆祈,“玉大人恨闪,你說(shuō)我怎么就攤上這事》呕担” “怎么了咙咽?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)淤年。 經(jīng)常有香客問(wèn)我钧敞,道長(zhǎng),這世上最難降的妖魔是什么麸粮? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任溉苛,我火速辦了婚禮,結(jié)果婚禮上弄诲,老公的妹妹穿的比我還像新娘愚战。我一直安慰自己,他們只是感情好齐遵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布寂玲。 她就那樣靜靜地躺著,像睡著了一般梗摇。 火紅的嫁衣襯著肌膚如雪拓哟。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天留美,我揣著相機(jī)與錄音彰檬,去河邊找鬼。 笑死谎砾,一個(gè)胖子當(dāng)著我的面吹牛逢倍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播景图,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼较雕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起亮蒋,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扣典,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后慎玖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贮尖,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年趁怔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了湿硝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡润努,死狀恐怖关斜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铺浇,我是刑警寧澤痢畜,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鳍侣,受9級(jí)特大地震影響丁稀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拱她,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一二驰、第九天 我趴在偏房一處隱蔽的房頂上張望扔罪。 院中可真熱鬧秉沼,春花似錦、人聲如沸矿酵。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)全肮。三九已至敞咧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辜腺,已是汗流浹背休建。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留评疗,地道東北人测砂。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像百匆,于是被迫代替她去往敵國(guó)和親砌些。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容