我setOnCheckedChangeListener为我实施了checkbox
有没有办法可以打电话
checkbox.setChecked(false);
Run Code Online (Sandbox Code Playgroud)
没有触发 onCheckedChanged
我知道这个问题一直被问到,但我仍然无法找到真正帮助我的建议.每当列表向下滚动时,都会取消选中该复选框.是的我正在使用布尔数组来存储值,但这仍然无法解决问题.这是我的代码.请为此建议一个解决方案.谢谢.
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final ViewHolder holder;
final boolean[] itemChecked=new boolean[30];
LayoutInflater inflater = context.getLayoutInflater();
if(convertView==null)
{
convertView = inflater.inflate(R.layout.custom_list, null);
holder = new ViewHolder();
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.title_text);
holder.txtViewDescription = (TextView) convertView.findViewById(R.id.description_text);
holder.cb=(CheckBox) convertView.findViewById(R.id.cb);
convertView.setTag(holder);
}
else
{
holder=(ViewHolder)convertView.getTag();
}
holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
itemChecked[position] = isChecked;
if(itemChecked[position])
{
holder.cb.setChecked(true);
}
else
{
holder.cb.setChecked(false);
} …Run Code Online (Sandbox Code Playgroud) 我有一个Android,ListView其项目有一个复选框.
默认情况下会选中该复选框.取消选中后,应将其从列表中删除.
问题是onCheckedChanged被解雇了两次:当我点击复选框取消选中它(带isChecked false)和我删除项目后(带isChecked true).
这是我的ArrayAdapter的相关代码:
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item, parent, false);
holder = new ViewHolder();
holder.check = (CheckBox) convertView.findViewById(R.id.check);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final Object item = this.getItem(position);
holder.check.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (!isChecked) {
remove(item); // This somehow calls onCheckedChanged again
} …Run Code Online (Sandbox Code Playgroud)