在 Android 中滚动屏幕时,列表视图中的切换按钮会失去状态

2024-03-27

我有一个列表视图,其中每个数据都是从列表适配器获取的。 列表视图中的每个项目都包含一个文本视图和切换按钮。 但是当我滚动列表时出现问题。切换按钮的选中状态会发生变化,即如果我选择了索引 4 处的切换按钮,那么滚动后我发现除了第四个按钮之外的任何随机按钮都被选中。


如果您仍然没有得到任何解决方案,请尝试这个 getview 方法.. // switchState[] 是一个布尔数组。

public View getView(int position, View convertView, ViewGroup parent) {
           ViewHolder holder = new ViewHolder();
         // mSwitchButton = (ToggleButton) findViewById(R.id.switchButton);
        if(convertView == null) {
            convertView = mInflator.inflate(R.layout.settings_item_cell, parent, false);
            holder.categoryName =
                    (TextView) convertView.findViewById(R.id.categoryType);
            convertView.setTag(holder);
            holder.switchButton  = (ToggleButton) convertView.findViewById(R.id.switchButton); 
        }
        else {
            holder = (ViewHolder) convertView.getTag();


        }

            holder.switchButton.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    int index =  (Integer) v.getTag();
                    Log.v("tag of switch============",""+index);
                    if(((ToggleButton) v).isChecked()) {
                        switchState[index] = true; 
                        ((ToggleButton) v).setButtonDrawable(R.drawable.item_selected);

                    }
                    else {
                        ((ToggleButton) v).setButtonDrawable(R.drawable.item_deselected);
                        switchState[index] =false; 
                    }
                    isToggleButtonClicked = true;

                }
            });  
            if(switchState[position])   
                holder.switchButton.setButtonDrawable(R.drawable.item_selected);
            else
                holder.switchButton.setButtonDrawable(R.drawable.item_deselected);

        holder.categoryName.setText(categories[position]);
        holder.switchButton.setTag(new Integer(position));

        return convertView;

    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中滚动屏幕时,列表视图中的切换按钮会失去状态 的相关文章

随机推荐