gpt4 book ai didi

android - 在 Android 中滚动屏幕时, ListView 中的切换按钮会失去其状态

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:23 27 4
gpt4 key购买 nike

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

最佳答案

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

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;

}

关于android - 在 Android 中滚动屏幕时, ListView 中的切换按钮会失去其状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com