2013-02-22 12 views
1

我知道這個問題在論壇中有很多答案,但我嘗試了所有答案,並且它們都不適用於我的代碼。滾動列表時,複選框未被選中。這裏是我的代碼:CheckBox在自定義列表視圖中未被選中滾動,未找到解決方案

public class ContactsAdapter extends ArrayAdapter<User> { 

private LayoutInflater inflater; 
boolean[] checkBoxState; 
ViewHolder holder; 

public ContactsAdapter(Context context, ArrayList<User> list) { 
    super(context, R.layout.listitemlayout, R.id.itemTextView, list); 
    inflater = LayoutInflater.from(context); 
    checkBoxState = new boolean [list.size()]; 
} 

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

    if (convertView == null) { 
     holder = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.listitemlayout, null); 
     holder.itemTextView = (TextView)convertView.findViewById(R.id.itemTextView); 
     holder.checkbox = (CheckBox)convertView.findViewById(R.id.checkbox); 
     convertView.setTag(holder); 
    } 
    else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    User user = getItem(position); 
    holder.itemTextView.setText(user.getName()); 

    holder.checkbox.setTag(user); 
    holder.checkbox.setChecked(checkBoxState[position]); 
    holder.checkbox.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if(((CheckBox)v).isChecked()) 
       checkBoxState[position]=true; 
      else 
       checkBoxState[position]=false; 
     } 
    }); 

    return convertView; 
} 

private class ViewHolder { 
    TextView itemTextView; 
    CheckBox checkbox; 
} 

}

請任何人能幫助我嗎?

+1

請按照下列步驟操作:http://stackoverflow.com/questions/5538867/customlistview-with-checkbox-while-scrolling-check-state-is-interchanged – Anand 2013-02-22 14:16:46

+0

我來看看!謝謝! – user2072553 2013-02-22 19:17:00

+0

Anand,謝謝你的幫助,但是這段代碼不起作用 – user2072553 2013-02-25 04:24:51

回答

0

你累了使用OnCheckedChangeListener而不是OnClickListener?然後,您可以將您從isChecked獲得的任何值分配到您的checkBoxState陣列中。

+0

是的,我做到了!是一樣的.... – user2072553 2013-02-22 19:17:46

+0

然後你需要更多關於發生了什麼的信息。嘗試運行調試器並在讀取數組中的值時以及將其更改爲反映新的檢查狀態時都放置斷點。 – ebarrenechea 2013-02-22 19:27:26

相關問題